C ++嵌套类作为父模板参数

时间:2014-12-10 15:36:33

标签: c++ templates nested-class

我正在尝试创建一个派生类,它使用嵌套类作为父类的模板参数,但编译器无法实例化模板:

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':使用类模板需要模板参数列表

将嵌套类移出并使其分离可以解决问题,但我想理解为什么不能编译它。

0 个答案:

没有答案