繁体   English   中英

C++ 立即联合初始化与变量初始化

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM