Локальная переменная создается копией с 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++ |
| Значение по умолчанию: Off |
Синтаксис командной строки:
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