使用逻辑或||组合两个整数?
在 这篇关于 std 的文件共享模式的 MSDN 文章中: :ofstream,微软写道:
要组合
filebuf::sh_read
和filebuf::sh_write
模式,请使用逻辑 OR (||
) 运算符。
据我所知,这两个常量都是 int
类型,所以我不明白为什么我们应该使用逻辑 OR 而不是按位 OR (|)。我一直认为逻辑或产生一个布尔值,所以没有办法解释结果?
In this MSDN article on file sharing mode with std::ofstream, Microsoft writes:
To combine the
filebuf::sh_read
andfilebuf::sh_write
modes, use the logical OR (||
) operator.
Both constants are of type int
, as far as I can see, so I don't understand why we should use the logical OR instead of the bitwise OR (|
). I always thought that the logical OR produces a Boolean value, so there is no way of interpreting the result?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个文档错误。在更高的版本中,他们重组了文档,将位掩码类型的解释委托给以下页面:
http://msdn.microsoft到达那里
耶!用于 MSDN 导航。此外,VS2010 文档已再次更改:最新页面 甚至不再描述标志字段的语义(尽管如此,您可以提及
_Mode | ios_base::out
来暗示参数是位掩码组合)It is a documentation error. In later versions, they have restructured the documentation, delegating the explanation of bitmask types to the following page:
Get there via
Yay! for MSDN navigation. Also, VS2010 documentation has been altered again: the newest page doesn't even describe the semantics of the flags fields anymore (allthough, you could take one mention of
_Mode | ios_base::out
to imply that the params are bitmask combinations)