有没有一种在C++中初始化简单结构的方便方法

Is there a convenient way to initialize simple structs in C++?

本文关键字:简单 初始化 结构 方法 方便 C++ 一种 有没有      更新时间:2023-10-16

假设我有一个简单的结构,如下所示:

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++中简单而优雅地初始化结构,而不必提供构造函数?

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

这些都是有效的。

此语法将根据顺序将上述组/集合中的每个值映射到每个结构成员变量,甚至不需要定义构造函数。