struct Outer {
struct Inner {
};
};
template <typename T>
void test()
{
??Outer?? foo; // How do I get the type of T's outer class ?
}
test<Outer::Inner>();
在 test() 内部我有一个 T 类型的模板参数,我想声明一个任何类型的变量是 T 的外部类。
我认为这对于编译器获取该信息应该是微不足道的,但到目前为止还找不到如何去做。
最佳答案
这是不可能的。确实有很多信息可供编译器使用,但无法在元编程上下文中轻松使用。为语言添加编译时反射的持续工作可能最终会改善这种情况,但不要屏住呼吸。
与此同时,您只需按照老式的方式进行即可。
struct Outer {
struct Inner {
typedef Outer outer_class;
};
}
关于c++ - 获取模板中外部类的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35277642/