以下是否有效?
template<typename T> class C { C1<C2<T>> someMember; };
最佳答案
好吧,你需要对类型做一些事情,要么让它成为 typedef 或成员,但是是的:
template <typename T>
struct C1 {};
template <typename T>
struct C2 {};
template <typename T>
struct C
{
typedef C1<C2T> > type; // note the space!
};
>>>
实际上是右移运算符,因此您需要在其中留一个空格才能使其正常工作。但是,在 C++0x 中,您只需键入 >>>
;它被解析得很好。*
*一些宽松的编译器目前会接受它。
关于c++ - 嵌套模板的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3311341/