6

?: 式の const 参照にバインドすることで、一時オブジェクトの有効期間が延長されるかどうかは明確ではありません。

class Foo {...};

Foo *someLValue = ...;

const Foo& = someLValue ? *someLValue : Foo();

バインディングが条件付きであっても、デフォルトのコンストラクター Foo() を呼び出すことによって作成された一時の有効期間は、それをローカル const ref にバインドすることによって延長されますか? それとも、Foo() の一時的な値が ?: 式の最後で破棄されるため、ダングリング参照が作成されますか?

4

1 に答える 1