尽管有完整定义,但C ++不完整类型

时间:2019-02-11 17:16:38

标签: c++ templates

我正在尝试实例化一个本身使用另一个模板的C ++模板,但是错误表明该字段不完整:

template <typename T> class T1 { };

template <typename T> class T2
{
    public:
        T2<T> t1;
};

class T_int
{
    public:
        T1<int> t1; //works
        T2<int> t2; //error
};

这两个模板都已完全定义,所以为什么在这种情况下不能使用T2?

编辑: 我知道类不能包含自己。我只是完全看不见这种错字。

template <typename T> class T2
{
    public:
        T2<T> t1;
};

应该是

template <typename T> class T2
{
    public:
        T1<T> t1;
};

0 个答案:

没有答案