Size: a a a

2020 March 31

CD

Constantine Drozdov in pro.cxx
А именно, перезаписи зависимости
источник

АР

Андрей Руссков in pro.cxx
Дмитрий ⬡ Лапшин
А на более глубоком уровне это например Rust, который избавляет от вопросов мув-операций, потому что ответ всегда один: тип или примитивно копируемый, или он всегда кроме явных мест перемещается и процесс перемещения тривиален до уровня бит.
ну это не до конца правильно. Допустим есть класс, который на куче держит ноду, ссылающуюся на него же. Типа A->B, B->A. При муве A надо поменять указатель B->A иначе UB. При только тривиальных мувах такое не получится сделать
источник

АР

Андрей Руссков in pro.cxx
но вообще конечно едва ли есть пример когда destructive move (в общем, а не в частной реализации того же раста) хуже плюсового
источник

ДЛ

Дмитрий ⬡ Лапшин in pro.cxx
Андрей Руссков
ну это не до конца правильно. Допустим есть класс, который на куче держит ноду, ссылающуюся на него же. Типа A->B, B->A. При муве A надо поменять указатель B->A иначе UB. При только тривиальных мувах такое не получится сделать
Ну раст в таком случае скажет про lifetime что иди unsafe пиши, в чём он прав, но написать правильно будет очень сложно.
источник

АР

Андрей Руссков in pro.cxx
не, вопрос в другом. Вот в плюсах ты просто переопределяешь мув
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Раст не считает это мувом и заставляет придумывать имя для операции. Их решение
источник

m

magras in pro.cxx
Андрей Руссков
но вообще конечно едва ли есть пример когда destructive move (в общем, а не в частной реализации того же раста) хуже плюсового
На самом деле он в ряде случаев хуже. Если компилятор ничего не знает о типе, ему приходится добавлять в него флаг помечающий "мертвые" объекты. Часто этого можно избежать, если использовать нулевые указатели в качестве такого флага.
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
В плюсах парятся за перегрузки для сохранения валуев семантики
источник

АР

Андрей Руссков in pro.cxx
Artöm Bakri Al-Sarmini
Раст не считает это мувом и заставляет придумывать имя для операции. Их решение
ну то есть я просто пишу функцию MyMove() которая сделает то, что я хочу?
источник

АР

Андрей Руссков in pro.cxx
вместо стокового мува
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Да
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
В плане гарантий ссылок она будет работать как мув
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Наверное. Я раст только начал смотреть
источник

АР

Андрей Руссков in pro.cxx
может быть кстати это не такая уж и проблема, в плане того что ты точно видишь где там мув необычный и т.д.
источник

FS

Flower Surgeon in pro.cxx
Саттер про мув как-то очень хорошо пояснил.
источник

Ф

Фрукт in pro.cxx
куда можно залить код на общий доступ , чтобы могли подсказать где ошибка?
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
pastebin
источник

Ф

Фрукт in pro.cxx
источник

Ф

Фрукт in pro.cxx
игнорируется условие в if
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Там присваивание вместо сравнения
источник