C++ 右值引用
VS2010的vector模板类的void push_back(_Ty&& _Val)
用到了右值引用,这是C++11标准有的。
但我试了
vt.push_back(MyClass(1));
仍然会调用一次构造函数,一次复制构造函数。那和push_back(const _Ty& _Val)这样,有啥区别呀,直接用const引用参数不就行了。
[解决办法]
void FunTest(MyClass && fi)
{
cout<<"&&"<<endl;
}
void FunTest(const MyClass & fi)
{
cout<<"const &"<<endl;
}
int main(int argc, char *argv[])
{
MyClass fi("ABC");
FunTest(fi);
return 0;
}
[解决办法]
添加一个移动构造!
[解决办法]
你的move constructor呢?