我有一些C++代码,其中广泛使用了
是否存在任何情况或原因,使得使用
!!
。我有点困惑,因为据我所知!!
不是一个单独的运算符,而是两个相邻的!
。这意味着!!foo
与foo
是相同的。是否存在任何情况或原因,使得使用
!!
有实际意义?我在想它是否可能具有位运算的含义?因此,您首先对foo
执行某些位运算,然后对结果执行!
?但我似乎记得!
并没有被用作位运算符,并且似乎也找不到任何参考资料告诉我它是。据我所知,!
仅用作逻辑运算符,在这种情况下
!!foo == foo
x+++++y+1
,但这是个不好的主意。 - msw!!
是完全定义的,对应于触发安全布尔转换运算符。这对于optional
、variant
或任何智能指针特别有用。 - v.oddou