【发布时间】:2022-11-20 23:15:17
【问题描述】:
我有一个包含多个成员的结构。
这些成员应该使用另一个成员来构造。
访问其他成员以初始化成员有效,还是我以这种方式调用 UB?
struct Data {
int b;
};
struct Bar {
Bar(Data& d): a(d.b){
}
int a;
};
struct Foo {
Data data;
Bar b;
};
int main() {
Foo f {.data = Data(), .b = Bar(f.data)}; // b is constructed using f.data!
}
【问题讨论】:
标签: c++ designated-initializer