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

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

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

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

VT>Здесь да, есть некая двойственность. Возможно причины двух одинаковых имён нужно искать в истории. Если не ошибаюсь, то алгоритм move появился раньше move-семантики. И если выбирать, чему оставить имя move, то я бы выбрал move-семантику, а алгоритм переименовал. Хотя они друг другу, вроде, не мешают, и по смыслу делают одно и то же: перемещают объекты из одного места в другое.


Нет, не делают они одно и то же, в том-то и беда. Если выражение "std::move(src.begin(), src.end(), dst.end())" вполне самостоятельно и реально что-то куда-то перемещает, то выражение "std::move(smth)" совершенно бесполезно, само по себе, и имеет смысл только как параметр, инициализатор или правая часть оператора присваивания.
Re[12]: Есть ли жизнь после перемещения?
Здравствуйте, ViTech, Вы писали:

VT>Здесь да, есть некая двойственность. Возможно причины двух одинаковых имён нужно искать в истории. Если не ошибаюсь, то алгоритм move появился раньше move-семантики. И если выбирать, чему оставить имя move, то я бы выбрал move-семантику, а алгоритм переименовал. Хотя они друг другу, вроде, не мешают, и по смыслу делают одно и то же: перемещают объекты из одного места в другое.


Нет, не делают они одно и то же, в том-то и беда. Если выражение "std::move(src.begin(), src.end(), dst.end())" вполне самостоятельно и реально что-то куда-то перемещает, то выражение "std::move(smth)" совершенно бесполезно, само по себе, и имеет смысл только как параметр, инициализатор или правая часть оператора присваивания. Здесь даже императивность в названии — "move" — и то не уместна.