「The C++ Programming Language (3rd)」p.255:
一時は、const 参照または名前付きオブジェクトの初期化子として使用できます。例えば:
void g(const string&, const string&); void h(string& s1, string& s2) { const string& s = s1+s2; string ss = s1+s2; g(s, ss); // we can use s and ss here }
これで問題ありません。「その」参照または名前付きオブジェクトがスコープ外になると、一時オブジェクトは破棄されます。
によって作成された一時オブジェクトは、スコープ外s1+s2
になると破棄されると言っているのですか? ss
にコピー初期化されるとすぐに破壊されませんss
か?