我想对一些值进行分组,例如在 astruct
中,并在创建对象时轻松设置它们。
struct structure
{
char letter;
int number;
float decimal;
};
structure object('c', 42, 12.3); // this doesn't work
我知道我可以手动编写这样的构造函数。
struct structure
{
structure(char letter, int number, float decimal) : letter(letter), number(number), decimal(decimal) {}
char letter;
int number;
float decimal;
};
structure object('c', 42, 12.3); // this of course do work
但是这样做很烦人,因为您必须两次和三次提及每个成员。但我只想对一些值进行分组......
我是否只有五个值中的三个我会使用std::pair
并嵌套这些值。
typedef structure pair<char, pair<number, decimal>>;
structure object(make_pair('c', make_pair(42, 12.3)));
.first
但是对于更多的值,使用and获取正确的值变得非常混乱.second
。实际上,我想对五个值进行分组。为此使用嵌套对似乎有点 hacky。
是否有用于设置所有成员或类似内容的构造函数?我有什么替代方法可以简单地对一些值进行分组而不为它们编写构造函数?