Информация об изменениях

Сообщение Re[8]: Есть ли жизнь после перемещения? от 21.11.2018 9:58

Изменено 21.11.2018 10:06 rg45

Re[8]: Есть ли жизнь после перемещения?
Здравствуйте, B0FEE664, Вы писали:

BFE>Да, это так. Используется std::move_backward. Об этом я узнал только сейчас (или я забыл о том, что это знал), когда полез в исходники и посмотрел. В работе я этого не замечал, что, кстати, говорит в пользу move семантики.


Конечно, перемудрили они с этими мувами. Теперь в стандарной библиотеке присутствуют два совершенно разных мува: один в алгоритмах: https://en.cppreference.com/w/cpp/algorithm/move, другой — в утилитах: https://en.cppreference.com/w/cpp/utility/move. С одинаковм, именем, в одном и том же пространстве имен — оба std::move — но совершенно разной семантикой.

Я бы на их месте постарался для вот этого нового move подобрать какое-нибудь более подходящее название. Например, make_rvalue, или rvalue_cast. С учетом того, что на самом деле эта функция ничего никуда не перемещает. Что часто вводит в заблуждение тех, кто только начинает вникать в имплементацию мув семантики.
Re[8]: Есть ли жизнь после перемещения?
Здравствуйте, B0FEE664, Вы писали:

BFE>Да, это так. Используется std::move_backward. Об этом я узнал только сейчас (или я забыл о том, что это знал), когда полез в исходники и посмотрел. В работе я этого не замечал, что, кстати, говорит в пользу move семантики.


Конечно, перемудрили они с этими мувами. Теперь в стандарной библиотеке присутствуют два совершенно разных мува: один в алгоритмах: https://en.cppreference.com/w/cpp/algorithm/move, другой — в утилитах: https://en.cppreference.com/w/cpp/utility/move. С одинаковм, именем, в одном и том же пространстве имен — оба std::move — но совершенно разной семантикой.

Я бы на их месте постарался для вот этого второго move подобрать какое-нибудь более подходящее название. Например, make_rvalue, или rvalue_cast. С учетом того, что на самом деле эта функция ничего никуда не перемещает. Что часто вводит в заблуждение тех, кто только начинает вникать в имплементацию мув семантики.