在this MSDN article on file sharing mode with std::ofstream中,Microsoft写道:
要合并
filebuf::sh_read
和filebuf::sh_write
模式,请使用逻辑OR(||
)运算符。
据我所知,两个常量都是int
类型,所以我不明白为什么我们应该使用逻辑 OR而不是按位OR({{1 }})。我一直认为逻辑OR产生一个布尔值,所以无法解释结果?
答案 0 :(得分:1)
这是文档错误。在更高版本中,他们重新构建了文档,将位掩码类型的解释委派给the following page:
位掩码类型可以实现为整数类型或枚举。在任何一种情况下,您都可以对相同位掩码类型的值执行按位运算(例如AND和OR)。位掩码类型的元素A和B是非零值,使得A& B为零。
通过
到达那里耶!用于MSDN导航。此外,VS2010文档已被再次更改:the newest page甚至不再描述flags字段的语义(尽管如此,您可以采用{em>提及的{ {1}}暗示params是位掩码组合)