c++ - 在类模板中定义一种本地类

标签 c++ templates

上课Data有一个本地类模板 Element<i> ,下面的代码有编译错误。代码看似简单,但有什么问题呢?

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

最佳答案

您需要 template 关键字:

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

这告诉编译器后面的名称是一个模板。

关于c++ - 在类模板中定义一种本地类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17607042/

相关文章:

c++ - 构造函数调用其他构造函数

c++ - 初学者 C++ - 带有奇怪 setw 错误的简单随机游走程序

javascript - 是否有支持递归之类的javascript模板引擎?

c++ - 在类模板中调用模板仿函数

c++ - 为什么我不能将 gtest ValuesIn 生成器与 std::map 一起使用?

c++ - 模板参数推导失败

c++ - 区分黑白捕获的 `this` 成员与 C++ lambda 中捕获的变量

c++ - 我们得出 XOR 字符串加密不如众所周知的加密安全的结论是否公平(比如 Blowfish)

c++ - WDK 10 - Rpcrt4.dll - 系统错误 2

c++ - 编译器如何知道必须调用 std::forward 函数的哪个重载?