Const 参照の右辺値の有効期間を延長する動機
const 参照にバインドされている場合の一時変数の有効期間を延長するという決定は多くの反響を呼びました。注意してください、その理論的根拠は依然として推測の対象です。この言語の特徴を理解するために、歴史と意図された利点を再確認してみましょう。
1993 年に、臨時職員に言及した場合の一貫性のない扱いに対処するための提案が提出されました。この規定がなければ、当時は戻り値の最適化 (RVO) がなかったため、一時変数への参照を禁止すると、パフォーマンスに悪影響が出る可能性がありました。
右辺値の有効期間を延長する背後にある理論的根拠は、rvalue の有効期間に関係なく、参照の一貫した動作を保証することでした。左辺値または一時値にバインドされているかどうか。右辺値を参照にバインドするときに右辺値の有効期間を途中で消滅させると、予測不能でエラーが発生しやすいコードが発生する可能性があります。
具体的には、右辺値の有効期間を延長することで、オブジェクトがクライアントから実装の詳細を隠蔽できるようになりました。たとえば、行ベクトルと列ベクトルの両方を返す行列クラスについて考えてみましょう。パフォーマンスを最適化するために、実装はデータ レイアウトの決定に基づいて参照またはコピーのいずれかを返すことを選択できます。
戻り値の型を const 参照にすることで、クライアントはコードを変更せずに値と参照の両方をシームレスに受け入れることができます。この柔軟性により、ライブラリ作成者は、既存のアプリケーションを壊すことなく実装を進化させることができました。
要約すると、const 参照の右辺値の有効期間を延長する根拠は、一貫した動作を確保し、実装の詳細の隠蔽を容易にし、下位互換性を維持することでした。実装が変更される可能性があります。
以上がConst 参照の右辺値の有効期間が延長されたのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。