【发布时间】:2019-01-11 01:24:40
【问题描述】:
以下行为是否合法?
#include <iostream>
struct Foo
{
int bar;
int baz;
};
int main()
{
Foo instance = { 5, instance.bar };
std::cout << instance.baz << std::endl;
}
我认为这不是因为据我所知初始化顺序未指定,bar 字段可以在baz 之后初始化。
我说的对吗?
【问题讨论】:
-
在初始化时,
instance尚未创建,因此您无法引用其中的字段。
标签: c++ language-lawyer