Я не думаю, что «на месте» — это правильный термин, но мне не хватает лучшего.
У меня есть POD, скажем так:
struct My {
int a;
};
//and suppose a operator<< to stream is also defined
И я могу использовать это прямо это:
My my = {3};
std::cout << my << std::endl;
Мне интересно, могу ли я сделать то же самое ниже, но без использования вспомогательной функции:
template <typename ANY>
My helper(ANY value) {
My r = {value};
return r;
}
std::cout << helper(3) << std::endl;
Я ищу то же самое, что делает конструктор, но, поскольку у меня есть POD, я не могу создать конструктор.
Вы можете сделать это:
struct My {
int a;
int b;
int c;
float d;
};
void somefunc() {
cout << (My){1, 2, 3, 4.5} << endl;
}
Других решений пока нет …