c++对对象的常量引用

C++ constant reference to object

本文关键字:常量 引用 对象 c++      更新时间:2023-10-16

假设我有代码:

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的bug吗?

需要注意的是,const对视觉效果没有影响,您可以从a中修改b

对于声明符,c++语法如下:

ptr-operator:
* attribute-specifier-seqopt cv-qualifier-seqopt
& attribute-specifier-seqopt
&& attribute-specifier-seqopt

正如所见,引用没有cv-qualifier-seq。

所以我认为这是一个MS vc++错误或语言扩展:)