Double Negation in C++(C++中的双重否定)
问题描述
我刚刚加入了一个拥有非常庞大的代码库的项目.
I just came onto a project with a pretty huge code base.
我主要处理 C++ 并且他们编写的许多代码都使用双重否定作为布尔逻辑.
I'm mostly dealing with C++ and a lot of the code they write uses double negation for their boolean logic.
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
我知道这些人是聪明的程序员,很明显他们这样做并不是偶然的.
I know these guys are intelligent programmers, it's obvious they aren't doing this by accident.
我不是经验丰富的 C++ 专家,我对他们为什么这样做的唯一猜测是他们想要绝对肯定被评估的值是实际的布尔表示.所以他们否定它,然后再次否定它以使其回到它的实际布尔值.
I'm no seasoned C++ expert, my only guess at why they are doing this is that they want to make absolutely positive that the value being evaluated is the actual boolean representation. So they negate it, then negate that again to get it back to its actual boolean value.
这是正确的,还是我遗漏了什么?
Is this correct, or am I missing something?
推荐答案
转bool是个技巧.
这篇关于C++中的双重否定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:C++中的双重否定


基础教程推荐
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
- 在 C++ 中计算滚动/移动平均值 2021-01-01
- 这个宏可以转换成函数吗? 2022-01-01
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 常量变量在标题中不起作用 2021-01-01
- 我有静态或动态 boost 库吗? 2021-01-01
- 如何通过C程序打开命令提示符Cmd 2022-12-09
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01