在类中使用未定义模板

C++ Use undefined template in class

本文关键字:未定义      更新时间:2023-10-16

最近我发现了c++中预定义类的智能快捷方式。通常创建一些复杂的结构,我会写:

class A;
class B{
    A *a;
};
...
class A{
};

现在,感谢快捷方式,我写:

class B{
    class A *a;
};
class A{
};

我的问题是——我怎样才能使一个简短的定义等同于这个形式:

template<typename T> class A;
class B{
    typename typedef A<class T> a;
};

?

简单的回答是你不能。对常规类使用精心设计的类型说明符,通过隐式地向前声明,将名称引入封闭的命名空间。

模板的定义方式不同。