我正在使用Xng 4.6.2(4H1003)中包含的Clang。
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
目前我的编译器没有为此代码编译错误。
using AA = int const;
static AA const aa = 0;
因为我不熟悉准确的C ++ 11规范,所以我不知道什么是正确的行为。
const
个关键字的错误。const
using
不允许。标准的预期行为是什么?
答案 0 :(得分:3)
这已经被C ++ 98允许了 - 可以通过typedef名称和模板参数多次引入cv-qualifiers - 它们只是简单地折叠了。如果不允许这样做,通用代码会有很多问题。对于参考文献也会发生同样的事情。
§7.1.6.1 [dcl.type.cv] p1
:
有两个 cv-qualifiers ,
const
和volatile
。 [...]
忽略冗余cv资格。 [注意:例如,这些可以由typedef引入。 -end note ]