以下の return ステートメントのように、コンストラクター パラメーターを介して初期化される匿名オブジェクトを作成できます。
struct S {
S(int i_, int j_) : i(i_), j(j_) { }
int i, j;
};
S f()
{
return S(52, 100);
}
int main()
{
cout << f().i << endl;
return 0;
}
しかし、ブレース初期化子で初期化された匿名集約を同様に作成できますか? たとえば、以下の f() の本体を、「s?」なしで単一の return ステートメントに折りたたむことができますか?
struct S {
int i, j;
};
S f()
{
S s = { 52, 100 };
return s;
}
int main()
{
cout << f().i << endl;
return 0;
}