gpt4 book ai didi

c++ - 列表初始化时需要缩小转换

转载 作者:太空狗 更新时间:2023-10-29 21:13:31 25 4
gpt4 key购买 nike

我在 cpp 引用网站上阅读了有关缩小转换的内容。我有点理解,但我不明白为什么错误只出现在第一行。

    long double ld = 3.1415926536;
int a{ld}, b = {ld}; // error: narrowing conversion required
int c(ld), d = ld; // ok: but value will be truncated

为什么错误只出现在第一行而不是第二行?

最佳答案

因为编译器需要针对 list initialization 发出诊断(在您的情况下为错误)以缩小 only (又名统一初始化),从 C++11 开始引入。对于没有花括号的 C++11 之前的初始化,不需要诊断。

参见 cppreference.com文档以获取更多详细信息。

另见 this answer至于为什么只要求编译器发出警告,不一定是错误。

关于c++ - 列表初始化时需要缩小转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44031644/

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