我有一个类定义如下所示的情况:
template<class T>
class Alpha< Bravo<T> >
{
....
};
我正在使用 gnu g++ 进行编译,编译器提示 Alpha “不是模板”。
我已经在编写 Bravo 的库中看到了同样的技术,Bravo 是一个模板化的类。我错过了什么吗?我已经将 Alpha 彻底剥离并进行了测试,但没有编译成功。我也尝试从我在 Bravo 的库中看到这个工作的地方复制+粘贴代码,同样的事情,没有成功,同样的错误。
提前致谢。
最佳答案
您拥有的是部分模板特化;但是,任何模板特化都需要一个主模板来特化,而您没有。
template<class T>
class Alpha;
template<class T>
class Alpha<Bravo<T> >
{
// ...
};
关于嵌套在模板类定义中的 C++ 模板类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6348537/