为什么一个类/函数会有两个重载,一个用于左值,一个用于右值?
例如,来自 this视频,它说我们有两个重载 vector<T>::push_back
void push_back( const T& value );
void push_back( T&& value );
为什么我们不能只有一个值重载,
void push_back( T value );
如果它是一个左值,值将被复制,如果它是一个右值,值将被 move 。这不是标准的工作方式和保证方式吗?
最佳答案
根据您的按值提议,技术上会有复制+ move 或 move + move ,而对于其他两个重载,只有一个拷贝或一个 move 。
关于c++ - 为什么 push_back 有两个左值和右值重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14534999/