小编rip*_*rip的帖子

gcc和class关键字

我知道,typenameclass关键字是模板参数互换,但我认为只typename被允许嵌套类规范.

一旦我意外地为嵌套类错误地写了" class"而不是" typename".我发现gcc也接受class了,所以你可以这样写:

class std::vector<T>::iterator it;
instead of
typename std::vector<T>::iterator it;
Run Code Online (Sandbox Code Playgroud)

在你的模板中.

这是一个gcc错误还是标准真的允许这种语法?

更新:代码示例:

template <typename T>
void test()
{
     class std::vector<T>::iterator it;
}
Run Code Online (Sandbox Code Playgroud)

c++ gcc templates

8
推荐指数
1
解决办法
567
查看次数

标签 统计

c++ ×1

gcc ×1

templates ×1