このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 で導入