Ссылка на 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