Ссылка на 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++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
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