Необходимо ли использовать std::move при замене двух объектов? ⇐ C++
-
Гость
Необходимо ли использовать std::move при замене двух объектов?
Необходим ли std::move в следующем фрагменте?
std::function my_std_function; void call(std::function&& другая_функция) { my_std_function.swap(std::move(other_function)); } Насколько мне известно, call() принимает ссылку на rvalue.. но поскольку ссылка на rvalue сама по себе является lvalue, для вызова swap(std::function&&) Мне нужно преобразовать это в ссылку rvalue с помощью std::move
Правильны ли мои рассуждения или std::move в данном случае можно опустить (и если можно, то почему?)
Необходим ли std::move в следующем фрагменте?
std::function my_std_function; void call(std::function&& другая_функция) { my_std_function.swap(std::move(other_function)); } Насколько мне известно, call() принимает ссылку на rvalue.. но поскольку ссылка на rvalue сама по себе является lvalue, для вызова swap(std::function&&) Мне нужно преобразовать это в ссылку rvalue с помощью std::move
Правильны ли мои рассуждения или std::move в данном случае можно опустить (и если можно, то почему?)
Мобильная версия