【发布时间】:2013-07-22 14:33:24
【问题描述】:
最小代码示例:
struct B {
union U {
struct S {} s;
int i = 100;
}
u;
};
现在如果我们声明一个B obj;,那么obj.u.i 会被分配一个垃圾值而不是100。请参阅demo here。 (垃圾值因优化标志等而异)。
“类内初始化”功能是否应该与联合一起使用。
- 如果是,那么正确的语法是什么?还是这是一个 g++ 错误?
- 如果不是,那么
int i = 100;会做什么?
【问题讨论】:
-
clang 似乎对您的代码很满意。
-
@Praetorian,谢谢。但是,您还没有放置输出语句。所以这里是正确的clang output。
标签: c++ c++11 unions in-class-initialization