Re[8]: Есть ли жизнь после перемещения?
От: rg45 СССР  
Дата: 20.11.18 20:11
Оценка:
Здравствуйте, lpd, Вы писали:

lpd>Прощай лишняя косвенность, здравствуй rvalue reference.


Как пример упрощения. Без косвенности проще, чем с ковенностью.

lpd>Сложно придумать пример класса, для которого копирование реализовать сложнее, чем перемещение. И зачем экономить на копировании большинства классов?


Запросто, смотри

class PhysicalWorld
{
public:

  PhysicalWorld();
  PhysicalWorld(PhysicalWorld&&) = default;
  PhysicalWorld& operator = (PhysicalWorld&&) = default;

  // Задолбишься пыль глотать.
  // Да и нафиг не нужно никому.
  // Поэтому non-copyable
  PhysicalWorld(const PhysicalWorld&) = delete;
  PhysicalWorld& operator = (const PhysicalWorld&) = delete;

private:
  class Impl;
  std::inique_ptr<Impl> m {};
};


R>> Проще стало возвращать значения из фунцкций — если не отработает RVO/NRVO, по каким-то причинам, то move точно не подведет.

lpd>Я понял, у тебя фобия лишней косвенности. Могу напомнить: под капотом у rvalue reference все то же самое.

Где ты тут что про косвенность нашел

lpd>Допустим(это я не понял, особенно зачем ты часто подобными проблемами мучаешься).


Ну потому что я иногда не только палочкой окаменелые какашки ковыряю, как некоторые.

lpd>Я все таки на всякий случай спрошу: надеюсь, ты не всем вподряд типам добавляешь move-конструкторы?


Нет, конечно. Зачем же мне у компилятора отбирать его работу. А там где добавляю, то чаще всего как default, как в примере выше. Странное у тебя представленние о поддержке мув-семантики, надо сказать.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 20.11.2018 20:16 rg45 . Предыдущая версия . Еще …
Отредактировано 20.11.2018 20:12 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.