2

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

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

4

1 回答 1

2

你可以这样做:

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

void somefunc() {
   cout << (My){1, 2, 3, 4.5} << endl;
}
于 2013-03-21T17:18:23.543 回答