Ссылочный тип объявляется с избыточным const
или спецификатором volatile
Ссылочный тип C++, квалифицированный с const или энергозависимый, происходит, когда переменная со ссылочным типом объявляется с const
или спецификатором volatile
, например:
char &const c;
C++ 14 Стандартов утверждают, что const
или полные ссылки volatile
плохо формируются (если они не введены через typedef
, в этом случае они проигнорированы). Например, ссылка на одну переменную не может быть сделана, чтобы относиться к другой переменной. Поэтому использование спецификатора const
не требуется для переменной со ссылочным типом.
Часто использование этих спецификаторов указывает на ошибку кодирования. Например, вы означали объявлять ссылку на const
- квалифицированный тип:
char const &c;
const
- полная ссылка:char &const c;
, что c
будет неизменяемым, но видеть различное значение c
по сравнению с его значением в объявлении.Смотрите, помещается ли спецификатор const
или volatile
неправильно. Например, смотрите, хотели ли вы обратиться к const
- квалифицированный тип и вводимый:
char &const c;
char const &c;
const
или спецификатор volatile
перед оператором &
. В противном случае удалите избыточный спецификатор.Группа: Хорошая практика |
Язык: C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
CV_QUALIFIED_REFERENCE_TYPE |
Влияние: низко |
C++ reference to const-qualified type with subsequent modification
| Find defects (-checkers)
| Qualifier removed in conversion
| Unreliable cast of function pointer
| Unreliable cast of pointer
| Writing to const qualified object