demo类定义如下:
class myclass
{
public:
int i;
myclass() :i(0)
{ }
myclass(const myclass& other){
i = other.i;
cout << " left ref ok" << endl; // prints !!!Hello World!!!
}
myclass(myclass&& other){
i = other.i;
cout << "c11 right ref ok" << endl; // prints !!!Hello World!!!
}
};
myclass m1;
myclass m2(std::move(m1)); // ok
myclass m3(myclass()); // wrong
vs2015和g ++ 4.8都是一样的。 gcc报告: m3是非类型类型,myclass(myclass(*)())
我无法理解为什么会发生这种情况T.T