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 で導入