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++ |
| 既定値: オフ |
コマンド ライン構文: WRITE_REFERENCE_TO_CONST_TYPE |
| 影響度: Low |
バージョン履歴
R2019a で導入