Ссылка на const- квалифицированный тип впоследствии изменяется
Этот дефект происходит, когда переменная, которая относится к const- квалифицированный тип изменяется после объявления.
Например, в этом примере, refVal имеет тип const int &, но его значение изменяется в последующем операторе.
using constIntRefType = const int &;
void func(constIntRefType refVal, int val){
...
refVal = val; //refVal is modified
...
}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