Можно создать анонимный объект, который инициализируется с помощью параметров конструктора, например, в операторе 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(), приведенное ниже, до одного оператора return без «s?»
struct S {
int i, j;
};
S f()
{
S s = { 52, 100 };
return s;
}
int main()
{
cout << f().i << endl;
return 0;
}