Локальная переменная создается путем копирования из const ссылка и не измененные позже
Этот дефект возникает, когда локальная переменная создается копией из const ссылка, но не изменена позже.
Например, переменная name создается копией из const ссылка, возвращенная из get_name функция:
const std::string& get_name();
...
void func {
std::string name = get_name();
}2 * sizeof(void *).Если переменная создана из const ссылка и не измененная позже, сама переменная может быть определена как const ссылка. Создание const ссылка позволяет избежать потенциально дорогостоящей операции копирования.
Избегайте создания новой локальной переменной путем копирования из const если вы не планируете изменять переменную позже. Создать const вместо этого ссылка.
Например, в предыдущем разделе можно переопределить переменную. name как:
const std::string& get_name();
...
void func {
const std::string& name = get_name();
}Повышение производительности может зависеть от используемого компилятора, реализации библиотеки и среды.
| Группа: Производительность |
| Язык: C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
EXPENSIVE_LOCAL_VARIABLE |
| Воздействие: среднее |
Expensive copy in a range-based for loop iteration | Expensive pass by value | Expensive return by value | Find defects (-checkers) | Unmodified variable not const-qualified