假设有一个A类和MyType
template<typename DataType>
class MyType {
...
}
template<typename MyType>
class A {
...
}
Run Code Online (Sandbox Code Playgroud)
当我创建A的实例时A<MyType<int>>如何在A中访问模板类型int?
向用户公开类型别名:
template<typename DataType>
class MyType {
public:
using InnerDataType = DataType;
};
template<typename MyType>
class A {
public:
using InnerType = MyType;
};
Run Code Online (Sandbox Code Playgroud)
用法:
using MyA = A<MyType<int>>;
static_assert(std::is_same<
typename MyA::InnerType::InnerDataType,
int>{});
Run Code Online (Sandbox Code Playgroud)