繁体   English   中英

无法转换 'std::ifstream' {aka 'std::basic_ifstream<char> '} 到 'bool' 作为回报</char>

[英]Cannot convert 'std::ifstream' {aka 'std::basic_ifstream<char>'} to 'bool' in return

任何人都可以帮忙吗? 我收到标题中的错误

bool fexists(const char *filename)
{
 std::ifstream ifile(filename);
 return ifile;
}

bool转换运算符被标记为explicit ,这意味着它不能用于像这样的隐式转换。

如果 stream 是good()则返回:

return ifile.good();

请注意,当在实际条件下使用时,这是明确需要bool值并且将使用转换运算符的地方。


或者考虑您要执行的操作,检查文件是否存在,使用std::filesystem::exists代替。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM