社区讨论

发现了 C++ 结构体初始化的新方式

灌水区参与者 6已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo1zo2ng
此快照首次捕获于
2023/10/23 05:36
2 年前
此快照最后确认于
2023/11/03 06:01
2 年前
查看原帖
事情是这样的。我写了一个结构体,长这样:
CPP
struct node{
    struct base_node{
        int rt,l,r;
    }_0;
    union{
        #define reg(fn,...) struct fn __VA_ARGS__ _##fn
        reg(seq_add,{int s; int e; ll v;});
        reg(seq_sum,{int s; int e;});
    }_1;
};
(宏定义不打算手动展开捏)
然后,我想知道有没有优雅的初始化方式,于是问了问:
还真有!我第一次见可以按成员变量名称逐一初始化成员变量 (不知所云) 的初始化方法。(觉得这对于 C++ 来说还是有些太先进了
于是去 cppreference 上查了查,发现这个是 C++11 的新特性,是聚合初始化的一种。
好耶!

回复

5 条回复,欢迎继续交流。

正在加载回复...