Допустим, у меня есть класс:
class Aggregate {
public:
int x;
int y;
};
Я знаю, как инициализировать объект с помощью фигурных скобок:
Aggregate a1 = { 1500, 2900 };
Но я не могу найти правильный синтаксис для создания временного объекта и передачи его в качестве аргумента некоторому методу, например:
void frobnicate(const Aggregate& arg) {
// do something
}
//...
frobnicate(Aggregate {1500, 2900}); // what should this line look like?
Самый простой способ - добавить конструктор в класс Aggregate, но давайте предположим, что у меня нет доступа к заголовку Aggregate. Другой идеей было бы написать какой-то фабричный метод, т.е.
Aggregate makeAggregate(int x, int y).
Я также могу создать объект, а затем передать его в качестве аргумента и т. Д. И т. Д.
Есть много решений, но мне просто любопытно, можно ли достичь этой цели с помощью фигурных скобок.