在 MSVC2010 下,vector
类的移动构造函数定义如下:
vector(_Myt&& _Right)
: _Mybase(_Right._Alval)
{ // construct by moving _Right
_Assign_rv(_STD forward<_Myt>(_Right));
}
由于还有一个复制构造函数的定义,我想我们永远不会vector(_Myt&& _Right)
使用左值引用作为参数调用。
所以我想知道是否在这里,这条线:
_Assign_rv(_STD forward<_Myt>(_Right));
可以替换为:
_Assign_rv(_STD move<_Myt>(_Right));
无副作用