std::move ввод может привести к более дорогой копии объектаКонстанта std::move ввод не может быть перемещен, что приводит к более дорогостоящей операции копирования
Этот дефект возникает при использовании std::move на const объект, что приводит к более дорогостоящей операции копирования.
Средство проверки вызывает нарушение только для типов классов с нетривиальной операцией копирования и операцией перемещения.
A const объект не может быть изменен и поэтому не может быть перемещен. Один std::move на const объект бесшумно возвращается к операции копирования без ошибок компиляции. Ваш код может пострадать от снижения производительности, не заметив проблемы.
Удалить const квалификатор перемещаемого объекта.
Если требуется выполнить операцию копирования, удалите резервную std::move звоните.
Обратите внимание, что эта проблема также вызывает проверку Move operation on const object, что относится ко всем операциям перемещения на const объекты независимо от того, имеет ли тип класса операцию перемещения и нетривиальную операцию копирования. Если вы решите обосновать проблему, вы можете использовать одно и то же обоснование для обоих результатов.
Повышение производительности может зависеть от используемого компилятора, реализации библиотеки и среды.
| Группа: Производительность |
| Язык: C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
EXPENSIVE_STD_MOVE_CONST_OBJECT |
| Воздействие: среднее |