考虑以下代码:
class A {
A(const A&);
public:
A() {}
};
int main() {
const A &a = A();
}
此代码在 GCC 4.7.2 中编译良好,但在 Visual C++ 2010 中编译失败,并出现以下错误:
test.cc(8) : error C2248: 'A::A' : cannot access private member declared in class 'A'
test.cc(2) : see declaration of 'A::A'
test.cc(1) : see declaration of 'A'
那么在将临时对象绑定到引用时是否有必要让复制构造函数可访问?
这与我之前的问题有些相关: