我正在尝试创建一个派生类,它使用嵌套类作为父类的模板参数,但编译器无法实例化模板:
template<typename T>
class A {};
template<typename T>
class B : public A<typename B<T>::nested_class >
{
class nested_class : public std::pair<std::string, T>
{
// adds methods that use the T type
};
};
MSVC 2010在尝试编译时给出了3个错误:
语法错误:在标识符'nested_class'
之前缺少',''nested_class':未声明的标识符
'A':使用类模板需要模板参数列表
将嵌套类移出并使其分离可以解决问题,但我想理解为什么不能编译它。