Локальная переменная создается копией с 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