私が持っていると仮定します:
- コピー不可のクラスA
- メンバーとして const A& a を持つクラス B (コンストラクターで A を受け取り、初期化リストに設定します)
- 機能
A GenerateA();
これは、 B(GenerateA()) を行うことが有効であることを意味しますか?
つまり、const ref は、generateA() が返す A のコピーが行われないことを意味しますか? そして、返されたテンポラリのスコープは、B が存在する限り拡張されるということですか?
編集: コメントからのアドオンの質問: lvalue が const A& の場合、A& を GenerateA() からローカル A に返すことは許容されますか?
ありがとう!