Ссылка на const - квалифицированный тип впоследствии изменяется
Ссылка C++ на квалифицированный к 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