Ссылка на const
-квалифицированный тип впоследствии изменяется
Этот дефект возникает, когда переменная, которая ссылается на const
-qualified type изменяется после объявления.
Например, в этом примере refVal
имеет тип const int &
, но его значение изменяется в последующем операторе.
using constIntRefType = const int &; void func(constIntRefType refVal, int val){ ... refVal = val; //refVal is modified ... }
The const
квалификатор типа ссылки подразумевает, что переменная типа инициализируется при объявлении и не будет впоследствии изменена.
Компиляторы могут обнаруживать изменение ссылок на const
-квалифицированные типы как ошибка компиляции. Если компилятор не обнаруживает ошибку, поведение не определено.
Избегайте изменения const
-квалифицированные типы ссылок. Если изменение требуется, удалите const
квалификатор из объявления ссылочного типа.
Группа: Хорошая практика |
Язык: C++ |
По умолчанию: Off |
Синтаксис командной строки
: WRITE_REFERENCE_TO_CONST_TYPE |
Влияние: Низкое |
C++ reference type qualified with const or volatile
| Find defects (-checkers)
| Qualifier removed in conversion
| Writing to const qualified object