Значения параметров const могут предотвратить операцию пересылки, приводящую к более интенсивной производительностью операции копии
Этот дефект происходит когда const
объекты как параметры функции могут предотвратить операцию пересылки, приводящую к более интенсивной производительностью операции копии.
Средство проверки не проверяет, возможна ли операция пересылки в вызове заданной функции. Средство проверки просто подсвечивает const
параметры функции, которые имеют типы классов с нетривиальной операцией копии и операцией пересылки. Можно определить для себя, если параметр может быть перемещен в вызванную функцию.
Если аргумент функции является rvalue, ресурсы, сопоставленные с аргументом, больше не требуются и могут быть перемещены в параметры в вызванной функции. Компиляторы гарантируют, что операция пересылки используется в этой ситуации, поскольку они являются обычно менее дорогими, чем операции копии. Если вы используете const
возразите как параметр функции, вы явным образом предотвращаете эту компиляторную оптимизацию.
Если вы думаете, что параметр может быть перемещен в вызванную функцию, удалите const
спецификатор от отмеченного параметра функции.
Группа: Производительность |
Язык: C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
CONST_PARAMETER_VALUE |
Удар: низко |