c – 我不能在VS 2013中使用if(ifs == NULL)命令
发布时间:2020-12-16 09:53:22 所属栏目:百科 来源:网络整理
导读:编译此代码时: std::ifstream ifs("somefile.txt");if(ifs == NULL) 我收到一个错误 no operator matches these operands “==” 我在VS 2013的每个项目中都遇到了同样的错误,但我在VS 2010中没有遇到任何问题. 怎么解决这个? 解决方法 std :: basic_ios(s
编译此代码时:
std::ifstream ifs("somefile.txt"); if(ifs == NULL) 我收到一个错误
我在VS 2013的每个项目中都遇到了同样的错误,但我在VS 2010中没有遇到任何问题. 怎么解决这个? 解决方法
std :: basic_ios(std :: basic_ifstream继承)的定义在C 11中发生了变化.特别是,它的转换操作符操作符void *更改为
explicit operator bool ,因此您尝试执行的操作不再有效.尽管如此,检查流的状态绝不是常见的方法.相反,只做if(!ifs).
C标准现在变得比以往更快,MSVC习惯于将不同的标准混合在一起,直到它们完全支持最新标准.尽管委员会的目标是尽可能地减少这些代码,但是当事情发生变化时,你可以期待一些代码可以破解. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |