Вместо инициализации POD

Я не думаю, что «на месте» — это правильный термин, но мне не хватает лучшего.

У меня есть 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, я не могу создать конструктор.

2

Решение

Вы можете сделать это:

struct My {
int a;
int b;
int c;
float d;
};

void somefunc() {
cout << (My){1, 2, 3, 4.5} << endl;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]