struct X { const int n; };
union U { X x; float f; };
void tong() {
U u = {{ 1 }};
u.f = 5.f;
X *p = new (&u.x) X {2};
}
{{}}
做什么?
是否需要写作 - (&u.x)
?
答案 0 :(得分:1)
new (&u.x) X {2}
是一种“放置新”语法。它不分配内存并使用现有地址&u.x
。
你可以改为写
u.x = {2};
X *p = &u.x;