POD的初始化初始化

时间:2013-03-21 14:00:10

标签: c++ pod c++03

我不认为“到位”是正确的术语,但我缺乏一个更好的术语。

我有一个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,我无法创建构造函数。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

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

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