C ++中的双重否定 [英] Double Negation in C++

查看:123
本文介绍了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是一个技巧.

It's a trick to convert to bool.

这篇关于C ++中的双重否定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆