gpt4 book ai didi

c++ - 为什么初始化列表允许在 C++ 中缩小类型?

转载 作者:太空狗 更新时间:2023-10-29 22:54:44 24 4
gpt4 key购买 nike

我在 C++ 中使用 {} 初始化列表和基本类型时看到两个不同的结果。

我只得到一个警告narrowing conversion of d from double to int inside {}

double d {3.0};
int integer {d};

但如果我让它更明确,那么我会收到错误narrowing conversion of '3.0e+0' from 'double' to 'int' inside {}

int integer {3.0};

如果使用 {},C++11 不应该在这两种情况下阻止任何收缩转换吗?那为什么只发生在一种情况下呢?

我将最新版本的 Eclipse for C/C++ 与 MingGW 一起使用。有没有可能是 C++14 无意中挡住了路?

最佳答案

对于 gcc 变体,您需要指定 -Werror=narrowing 以使其成为错误而不是警告。 clang 和 vc++ 更严格,默认会报错。

关于c++ - 为什么初始化列表允许在 C++ 中缩小类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54378934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com