在类模板中定义一种本地类

时间:2013-07-12 03:27:57

标签: c++ templates

假设类Data具有本地类模板Element<i>,以下代码有编译错误。代码看似简单,但出了什么问题?

template<unsigned i, class Data>
class A
{
public:
    typedef typename Data::Element<i> ElementTy; // compilation error: token error
};

1 个答案:

答案 0 :(得分:1)

您需要template关键字:

typedef typename Data::template Element<i> ElementTy;

这告诉编译器以下名称是模板。