为什么一个类/函数会有两个重载,一个用于左值,一个用于右值?
例如,从这个视频中,它说我们有两个重载vector<T>::push_back
void push_back( const T& value );
void push_back( T&& value );
为什么我们不能只按值重载一个,
void push_back( T value );
如果它是一个左值,值将被复制,如果它是一个右值,值将被移动。这不是标准的工作方式和保证方式吗?
为什么一个类/函数会有两个重载,一个用于左值,一个用于右值?
例如,从这个视频中,它说我们有两个重载vector<T>::push_back
void push_back( const T& value );
void push_back( T&& value );
为什么我们不能只按值重载一个,
void push_back( T value );
如果它是一个左值,值将被复制,如果它是一个右值,值将被移动。这不是标准的工作方式和保证方式吗?