【发布时间】:2018-07-18 14:09:38
【问题描述】:
通常在使用常量到引用时会出现编译器错误,但在使用别名或使用模板时不会。为什么会这样?
int a = 5;
using my_t = int&;
my_t const b = a; //#1 OK
int& const c = a; //#2 Compiler error
通过最新的 clang 编译器 (x86-64 clang (experimental P1144)) 运行时,#1 给了我警告:
[x86-64 clang (experimental P1144) #1] warning: 'const' qualifier on reference type 'my_t' (aka 'int &') has no effect [-Wignored-qualifiers]
而 #2 给了我错误:
[x86-64 clang (experimental P1144) #1] error: 'const' qualifier may not be applied to a reference。
x86-64 gcc (trunk) 给 #2 一个错误,但给 #1 一个错误。
【问题讨论】:
标签: c++