返回"Cannot convert from 'std::ofstream {aka std::basic_ofstream<char>}' to bool"错误



我已经写了此代码

ofstream f(<namefile>);
f.write(reinterpret_cast<const char *>(&ins.num_dip),
    sizeof(ins.num_dip));
f.write(reinterpret_cast<const char *>(ins.dip),
    ins.num_dip * sizeof(char));
return f;

但是我不明白我在哪里错了,你能帮忙吗?

允许将std::ostream(和其他std流(转换为bool的转换操作员是显式的,这意味着它只能用于显式铸件,以及用于BOOL的上下文转换(例如内部条件((。返回布尔值不是布尔的上下文转换,因此演员表是要明确的:

return static_cast<bool>(f);

您也可以使用适当的getter而不是铸件:

return !f.fail();

最新更新