bal*_*lki 8 c++ move-semantics c++11
为什么类/函数有两个重载,一个用于左值,一个用于右值?
例如,从这个视频中,它说我们有两个重载vector<T>::push_back
void push_back( const T& value );
void push_back( T&& value );
Run Code Online (Sandbox Code Playgroud)
为什么我们不能只按值重载一次,
void push_back( T value );
Run Code Online (Sandbox Code Playgroud)
如果它是左值,则将复制值,如果它是右值,则将移动值.这不是标准的工作方式和保证吗?
使用您的按价值命题,技术上会有复制+移动或移动+移动,而其他两个重载则有一个副本或一个移动.
| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |