【发布时间】:2021-02-28 03:31:49
【问题描述】:
有没有办法在基类上创建一个在派生类中定义的内部类的实例?见下文。
template<typename D>
struct Base {
D::Data data; // MSVC 2019 gives me compilation errors.
};
struct Derrived : Base<Derrived> {
struct Data {
bool b = false;
int i = 0;
};
};
【问题讨论】:
-
这能回答你的问题吗? C++ static polymorphism (CRTP) and using typedefs from derived classes这个问题问的是typedef而不是嵌套类型,但我相信限制是一样的。
-
链接的问题没有解决我的问题,因为一些细节有很大不同。在链接的问题中,模板参数是传入的,因此可以在类定义之前定义它,而在我的问题中,它是一个内部类,无法预先定义。
标签: c++