我刚刚针对vc ++ 2015,g ++ 4.8.4和clang 3.4测试了以下代码:
#include <iostream>
using namespace std;
class X { };
void f( /* const */ X &x )
{
cout << "void f( const X &x )" << endl;
}
int main()
{
f( X() );
return 0;
}
据我所知,如果f接收到const-reference,f(X())应该没问题。 g ++和clang没有编译代码。所以这似乎是一个VC ++ - bug?