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 に答える