【发布时间】:2015-07-10 13:23:30
【问题描述】:
您可以在普通类中前向声明模板内部类,并将定义的类型用作任何其他前向声明的类型。
class Outer {
template <int N> class Inner;
typedef Inner<0> Inner0;
Inner0* f();
};
template<int N>
class Outer::Inner {};
现在如果 Outer 本身就是一个模板类,有没有办法将 Inner 的声明保留在 Outer 的声明之外?类似的东西:
template<typename T>
class Outer {
template <int N> class Inner;
typedef Inner<0> Inner0;
Inner0* f();
};
template<typename T, int N> //This won't work
class Outer<T>::Inner {};
是否有正确的语法来使用正确的模板参数声明 Outer ?
【问题讨论】: