在 C++ 标准中std::ios::openmode
,std::ios::fmtflags
和std::ios::iostate
是实现定义的。但是std::ios::goodbit
被标准化为零。我的问题是:这些位掩码是否可以根据标准转换为布尔值。换句话说,要测试是否设置了错误标志,我们可以输入:
inline void myFunction(std::ios::iostate x = std::ios::goodbit)
{
if (x) { // <- is it ok or do I have to type "if (x != std::ios::goodbit)" ?
/* SOMETHING */
}
}