此代码error C2248: 'A::A' : cannot access private member declared in class 'A'
在 VS2010 中发出,尽管 RVO 不需要复制构造函数。为了证明这一点,只需将A(const A&);
下面的声明公开,代码将毫无问题地执行,即使没有复制构造函数的定义。
class A
{
int i;
A(const A&);
public:
A() : i(1) {}
};
A f() { return A(); }
int main()
{
A a;
a = f();
}