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