C++ C+;中的const-type到const-alias+;11
我使用的是Xcode 4.6.2(4H1003)中包含的Clang 目前我的编译器没有为此代码生成编译错误C++ C+;中的const-type到const-alias+;11,c++,alias,C++,Alias,我使用的是Xcode 4.6.2(4H1003)中包含的Clang 目前我的编译器没有为此代码生成编译错误 using AA = int const; static AA const aa = 0; 因为我不熟悉准确的C++11规范,所以我不知道什么是正确的行为 双const关键字错误 不允许在上使用常量 这是一个特例 这是编译器错误 标准的预期行为是什么?这在C++98中已经被允许了-cv限定符可以通过typedef名称和模板参数多次引入-它们只是被折叠。如果这是不允许的,通用代码将有
using AA = int const;
static AA const aa = 0;
因为我不熟悉准确的C++11规范,所以我不知道什么是正确的行为
const
关键字错误上使用常量
标准的预期行为是什么?这在C++98中已经被允许了-cv限定符可以通过typedef名称和模板参数多次引入-它们只是被折叠。如果这是不允许的,通用代码将有很多问题。同样的事情也发生在参考文献中
§7.1.6.1[dcl.type.cv]p1
:
有两个cv限定符,const
和volatile
。[…]多余的简历资历被忽略。[注:例如,这些资历可以由typedefs引入。-结束注]
[dcl.type.cv]/1“多余的简历资格被忽略。[注:例如,这些可能由typedefs引入。-结束注]”我的问题与此相关或重复:可能重复
using AA = int const;
static AA const aa = 0;