假设我有代码:
void a(int& const b)
{
}
此代码段在Visual Studio 2012上编译没有问题,但是,使用ideone中的G ++,程序将在编译错误后输出:
error: ‘const’ qualifiers cannot be applied to ‘int&’
void a(int& const b)
^
所以我想知道哪一个编译器在这个中是正确的?这是Visual Studio中的另一个无限+ 1个错误吗?
请注意,const对视觉效果没有影响,您可以在b
a
答案 0 :(得分:2)
C ++语法对声明符
采用以下方式ptr-operator:
* attribute-specifier-seqopt cv-qualifier-seqopt
& attribute-specifier-seqopt
&& attribute-specifier-seqopt
正如所见,引用没有cv-qualifier-seq。
所以我认为它是MS VC ++错误或语言扩展。:)