可以创建一个匿名对象,并通过构造函数参数进行初始化,例如在下面的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”的单个返回语句?
struct S {
int i, j;
};
S f()
{
S s = { 52, 100 };
return s;
}
int main()
{
cout << f().i << endl;
return 0;
}