【发布时间】:2019-01-26 13:43:21
【问题描述】:
在使用 C++ 中的 {} 初始化程序列表和原始类型时,我看到了两个不同的结果。
我只得到一个警告在 {}
中将 d 从 double 转换为 intdouble d {3.0};
int integer {d};
但是,如果我让它更明确,而不是警告,我会得到一个错误将“3.0e+0”从“double”缩小到“int”在{}
int integer {3.0};
如果使用 {},C++11 不应该在这两种情况下阻止任何缩小转换吗?那为什么只发生在一种情况下呢?
我正在使用最新版本的 Eclipse for C/C++ 和 MingGW。 C++14有没有可能无意中挡道?
【问题讨论】:
标签: c++ c++11 initializer-list type-narrowing