Я не думаю, что «на месте» - правильный термин, но мне не хватает лучшего.На месте инициализации POD
У меня есть POD, скажем:
struct My {
int a;
};
//and suppose a operator<< to stream is also defined
И я могу использовать его прямо так:
My my = {3};
std::cout << my << std::endl;
мне интересно, если я могу сделать то же самое ниже, но без использования вспомогательной FUNC :
template <typename ANY>
My helper(ANY value) {
My r = {value};
return r;
}
std::cout << helper(3) << std::endl;
Я ищу то же самое, что конструктор делает, но так как у меня есть POD я не могу создать кон structor.
Жаль, что вы указали [тег: C++ 03] - вы могли бы сделать 'My {3}' в [тег: C++ 11]. –
@sftrabbit Слишком плохой msvc не хватает хорошей поддержки для C++ 11. Я ненавижу работать с msvc. –
Что касается «на месте инициализации», я думаю, что вы имеете в виду «[агрегатная инициализация] (http://en.cppreference.com/w/cpp/language/aggregate_initialization)». – Void