【发布时间】:2015-09-24 18:03:50
【问题描述】:
根据http://en.cppreference.com/w/cpp/language/type_alias,别名是块级声明。它没有说明模板别名有什么特别之处,因此应该理解模板别名也是块级声明。
但是,在块级别使用模板别名是不可能的。错误因编译器而异 - 虽然 g++ 给出了一个有意义的消息,说模板在块范围内是不允许的,但 clang 是完全神秘的。 (例如:http://coliru.stacked-crooked.com/a/0f0862dad6f3da61)。
到目前为止我的问题:
- cppreference 是否未能指定模板别名不能在块范围内使用? (或者我需要参加阅读课程吗?)
- 编译器在块级拒绝模板别名方面是否正确(我发现这个功能对我的特殊编码习惯非常有趣)
- 如果第二个答案是肯定的,这可能是什么原因?为什么编译器会拒绝我这种纯语法糖?
【问题讨论】:
-
重新“纯语法糖”,不,不是这样。然而,我刚起床,我的神经元还没有完全投入。其他人将不得不详细说明。
标签: c++ template-aliases