Похоже, что размещение новых звонков - тренд, поэтому я стараюсь предложить альтернативу Не уверен, что это хорошо, хотя.
struct a
{
std::vector<int> i{ 10, 20, 30, 40 };
};
int main()
{
a *i = // allocate
*i = a(); // calls ctor, calls copy operator, calls dtor
// in principle.
}
Я с подозрением отношусь к этому маршруту из-за всех добавленных вызовов функций. Даже если это возможно, компилятор оптимизирует их.
Некоторые говорят, что конструкторы безымянные. Это явно не правда; Я думаю, что команда cpp хотела подчеркнуть разницу между конструкцией и назначением. Довольно глупо, если вы спросите меня.