Здравствуйте, LaptevVV, Вы писали:
LVV>Вроде как move становится простым как "два байта" переслать.
Наоборот, move усложняется, потому что надо не просто скопировать содержимое, а поправить "указатели на себя".
Именно из-за таких классов move сделан таким сложным, потому что иначе его можно было бы реализовать тупо побитовой копией (а оригинал принудительно делать placement new() на конструктор-по-умолчанию), а вектор можно было бы реаллоцировать полным аналогом сишного реаллок.
И что характерно, именно самоссылающиеся классы как раз не используют в векторах и там где нужен move. Так что получается что кресотмув — переусложнённый ненужный кусок говна.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте