gpt4 book ai didi

c++ - 将流转换为 bool 在另一个编译器上不起作用

转载 作者:太空狗 更新时间:2023-10-29 20:12:39 25 4
gpt4 key购买 nike

为什么用 libstdc++这有效,但与 libc++它失败?在 gcc 上它也可以工作:

bool b = std::cin;

最佳答案

您应该添加编译时使用的语言标准和编译器。

直到 C++11,std::basic_iosoperator void*,从 C++11 开始它有 explicit operator bool .

第二个是显式的,这意味着您的示例中的隐式转换不能使用它。

来自 GNU 项目的 libstdc++ 仍然无条件地包含预 C++ 转换(版本 4.9.1):

operator void*() const
{ return this->fail() ? 0 : const_cast<basic_ios*>(this); }

漏洞 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56193自 2014 年 9 月 24 日起已解决,因此下一个版本应该更正。

关于c++ - 将流转换为 bool 在另一个编译器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304949/

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