C++ C+;中的const-type到const-alias+;11

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名称和模板参数多次引入-它们只是被折叠。如果这是不允许的,通用代码将有

我使用的是Xcode 4.6.2(4H1003)中包含的Clang

目前我的编译器没有为此代码生成编译错误

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;