C++中是否存在"普通"一元逻辑运算符

Tam*_*ash 3 c++ operators logical-operators unary-operator

我的意思是,我们都知道有一个否定逻辑运算符!,它可以像这样使用:

class Foo
{
public:
    bool operator!() { /* implementation */ }
};

int main()
{
    Foo f;
    if (!f)
        // Do Something
}
Run Code Online (Sandbox Code Playgroud)

是否有任何运营商允许这样做:

if (f)
    // Do Something
Run Code Online (Sandbox Code Playgroud)

我知道这可能不重要,但只是想知道!

Lig*_*ica 7

如果你小心的话,你可以声明和定义operator bool()隐式转换.bool

或者写道:

if (!!f)
   // Do something
Run Code Online (Sandbox Code Playgroud)