uj2*_*uj2 7 c++ templates template-templates
这段代码:
template <template <typename> class T>
class A
{
};
template <typename T>
class B
{
A<B> x;
};
Run Code Online (Sandbox Code Playgroud)
不编译,我想自从A<B>被解释为A<B<T> >在B范围内.
那么,你如何B在其范围内作为模板模板参数传递?
Kir*_*sky 12
试试这个:
template <typename T>
class B
{
A< ::B > x; // fully qualified name for B
};
Run Code Online (Sandbox Code Playgroud)
根据C++标准14.6.1/2,您应该使用模板的正常名称(即封闭范围中的名称,而不是inject-class-name).