Ссылочный тип, объявленный с избыточным const
или volatile
определитель
Этот дефект возникает, когда переменная со ссылочным типом объявляется с 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