const オブジェクトの移動操作
関数 std::move が const または const& を宣言したオブジェクトで呼び出される
説明
この欠陥は、関数 std::move が const または const& を宣言したオブジェクトで呼び出された場合に発生します。
リスク
const または const& を宣言したオブジェクトでは、想定とは違って、移動コンストラクターの代わりにコピー コンストラクターが呼び出されます。
修正方法
const オブジェクトで関数 std::move が呼び出されないようにします。移動操作を実行する場合は、const オブジェクトを非 const オブジェクトにキャストしてから、非 const オブジェクトを移動します。
この問題は、チェッカーの [Const std::move の入力により、オブジェクト コピーの計算量が増える場合があります] もトリガーする可能性があることに注意してください。問題を正当化する場合は、両方の結果に対して同じ正当化を使用できます。
結果情報
| グループ: プログラミング |
| 言語: C++ |
| 既定値: 手書きコードはオン、生成コードはオフ |
コマンド ライン構文: MOVE_CONST_OBJECT |
| 影響度: High |
バージョン履歴
R2020a で導入