Const 参照が C の一時変数の寿命を延ばすのはなぜですか?

Susan Sarandon
リリース: 2024-11-03 05:06:02
オリジナル
986 人が閲覧しました

Why Do Const References Extend the Lifetime of Temporaries in C  ?

Const 参照による右辺値の有効期間の延長

C では、 const 参照は不変のエイリアスとして機能するだけでなく、一時変数の有効期間も延長します。 C 委員会はなぜこの動作を実装することにしたのですか?

この機能の理論的根拠の 1 つは、実装の詳細をクラスや関数から隠すことです。行ベクトルまたは列ベクトルを返すことができる行列クラスを考えてみましょう。パフォーマンスを最適化するために、クラスは行優先または列優先の構成に基づいて内部値への参照を返すことを選択できます。クライアントに戻り値を const 参照として受け入れるよう要求することで、クラスは参照と値をシームレスに切り替えて、クライアントを実装の詳細から保護できます。

歴史的に、右辺値の有効期間を延長するという決定は、方法の不一致に対処したいという要望から生まれました。リファレンスが一時的に扱うようになったのは 1993 年です。当時は RVO (戻り値の最適化) は存在していませんでした。一時変数の参照へのバインドを禁止すると、パフォーマンスが大幅に低下する可能性があります。したがって、委員会は、一時ファイルの寿命を延長しながらバインディングを可能にし、参照使用中の一時ファイルの可用性を確保するソリューションを選択しました。

この理論的根拠は、1993 年に C 標準委員会に提出された提案 N0345.pdf に文書化されています。 const 参照は右辺値の有効期間を延長することで、より優れた抽象化を促進し、コードの柔軟性を維持し、関数からオブジェクトを返すときのパフォーマンスを最適化します。

以上がConst 参照が C の一時変数の寿命を延ばすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート