-3

次のような単純な構造体があるとしましょう。

struct Simple
{
    int weight;
    std::string name;
    float power;
};

コンストラクターを作成せずに、パラメーターを個別に設定することなく、これらのいずれかを初期化できるようにしたいと考えています。たとえば、次のような構文を夢見ています。

Simple s( 4, "bill", 3.1f );

...多分...

Simple s = { 4, "bill", 3.1f };

...または本当に...

Simple s{ 4, "bill", 3.1f };

最初の例は、独自のブレインデッド コンストラクターを追加することで機能することがわかっています。面倒。

同様に、最後の例は C++11 でも機能しますが、コンストラクターを提供する必要があると思います。

コンストラクターを提供することなく、C++ で構造体を簡単かつエレガントに初期化する方法はありますか?

4

1 に答える 1

3
Simple s = { 4, "bill", 3.1f };

Simple s{ 4, "bill", 3.1f };

これらは有効です。

この構文は、順序に応じて上記のグループ/セットの各値を各構造体メンバー変数にマップし、コンストラクターを定義する必要さえありません。

于 2013-05-31T21:55:42.673 に答える