嵌套模板的可能性

use*_*352 1 c++ templates nested

以下是否有效?:

template<typename T> class C { C1<C2<T>> someMember; };
Run Code Online (Sandbox Code Playgroud)

GMa*_*ckG 5

好吧,你需要对类型做一些事情,要么使它成为typedef或成员,但是是的:

template <typename T>
struct C1 {};

template <typename T>
struct C2 {};

template <typename T>
struct C
{
    typedef C1<C2T> > type; // note the space!
};
Run Code Online (Sandbox Code Playgroud)

>>实际上是右移位运算符,所以你需要一个空间才能正常工作.但是,在C++ 0x中,您只需输入>>; 解析得很好.*

*一些宽松的编译器目前会接受它.