[basic.execution] p5 センテンス 2の状態:
言語構造が関数の暗黙的な呼び出しを生成するように定義されている場合、言語構造の使用は、この定義の目的では式と見なされます。
ただし、この文の意図はすぐにはわかりません。私の最善の推測では、適切な順序付けを確実にし、暗黙的な関数呼び出しが完了する前に一時変数が破棄されないようにするためにここにあると思いますが、これが適用されて一部のコードの意味が変わる状況は見当たりません。例えば:
struct S { };
const S& f() { return {}; }
ここでは、return
ステートメントは式と見なされ、オペランド{}
も式と見なされるため、return
ステートメントの部分式と見なされます。これが文の意図ですか?これは他にどこに当てはまり、意味のある効果をもたらすでしょうか?