[英]C++ union-initialization by immediate vs. initialization by variable
为什么在 C++ 中允许这样做...
union u
{
double d = 1.0;
long long ll;
};
……但不是这个……
double v = 1.0;
union u
{
double d = v;
long long ll;
};
MSVC 和 g++ 接受第一个但不接受后者。
这是允许的,但前提是在 C++11 中引入了非静态数据成员初始化程序。 像 C++98 这样的旧 C++ 标准不接受它。 除非您正在维护使用 C++98 等遗留标准构建的项目,否则请尽量避免使用这些旧标准。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.