可以创建一个匿名对象,该对象通过构造函数参数进行初始化,例如在下面的 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;
}