Значения параметра Const могут предотвратить операцию перемещения, что приведет к более ресурсоемкой операции копирования
Этот дефект возникает, когда const объекты как параметры функции могут предотвращать операцию перемещения, приводящую к более интенсивной операции копирования.
Средство проверки не проверяет, возможна ли операция перемещения в данном вызове функции. Шашка просто подсвечивает const параметры функции, имеющие типы классов с нетривиальной операцией копирования и операцией перемещения. Можно самостоятельно определить, можно ли переместить параметр в вызываемую функцию.
Если аргумент функции является значением rvalue, ресурсы, связанные с аргументом, больше не требуются и могут быть перемещены в параметры вызываемой функции. Компиляторы обеспечивают использование операции перемещения в этой ситуации, поскольку они, как правило, дешевле операций копирования. Если используется const объект в качестве параметра функции явно запрещает оптимизацию компилятора.
Если вы считаете, что параметр можно переместить в вызываемую функцию, удалите const квалификатор из помеченного параметра функции.
Повышение производительности может зависеть от используемого компилятора, реализации библиотеки и среды.
| Группа: Производительность |
| Язык: C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
CONST_PARAMETER_VALUE |
| Воздействие: Низкий |
Const return values may cause unnecessary data copies | Const rvalue reference parameter may cause unnecessary data copies | Find defects (-checkers)