メインコンテンツ

const オブジェクトの移動操作

関数 std::moveconst または const& を宣言したオブジェクトで呼び出される

説明

この欠陥は、関数 std::moveconst または const& を宣言したオブジェクトで呼び出された場合に発生します。

リスク

const または const& を宣言したオブジェクトでは、想定とは違って、移動コンストラクターの代わりにコピー コンストラクターが呼び出されます。

修正方法

const オブジェクトで関数 std::move が呼び出されないようにします。移動操作を実行する場合は、const オブジェクトを非 const オブジェクトにキャストしてから、非 const オブジェクトを移動します。

この問題は、チェッカーの [Const std::move の入力により、オブジェクト コピーの計算量が増える場合があります] もトリガーする可能性があることに注意してください。問題を正当化する場合は、両方の結果に対して同じ正当化を使用できます。

結果情報

グループ: プログラミング
言語: C++
既定値: 手書きコードはオン、生成コードはオフ
コマンド ライン構文: MOVE_CONST_OBJECT
影響度: High

バージョン履歴

R2020a で導入