この質問から、そしてその結果、標準 (ISO C++-03) から:
参照がストレージを必要とするかどうかは指定されていません (3.7)。
そのスレッドのいくつかの回答では、参照は内部的にポインターと同じ構造を持っているため、同じサイズ (32/64 ビット) であると言われています。
私が把握するのに苦労しているのは、どのようにして参照がストレージを必要としないようになるのでしょうか?
これを例示するサンプルコードは大歓迎です。
編集: @ JohannesSchaub-litb コメントから、 を使用していない場合const &
、またはconst &
をデフォルト値で使用している場合、割り当てが必要ですか? どういうわけか、参照の割り当てはまったくあってはならないように思えます-もちろん、次のような明示的な割り当てがある場合を除きます。
A& new_reference(*(new A())); // Only A() instance would be allocated,
// not the new_reference itself
このようなケースはありますか?