有没有“正常”的情况? C++ 中的一元逻辑运算符
我的意思是,我们都知道有否定逻辑运算符 !
,它可以这样使用:
class Foo
{
public:
bool operator!() { /* implementation */ }
};
int main()
{
Foo f;
if (!f)
// Do Something
}
是否有任何运算符允许这样做:
if (f)
// Do Something
我知道这可能不重要,但只是想知道!
I mean, we all know that there is the negation logical operator !
, and it can be used like this:
class Foo
{
public:
bool operator!() { /* implementation */ }
};
int main()
{
Foo f;
if (!f)
// Do Something
}
Is there any operator that allows this:
if (f)
// Do Something
I know it might not be important, but just wondering!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您是小心。
或者写:
You can declare and define
operator bool()
for implicit conversion tobool
, if you're careful.Or write:
由于
operator bool()
本身非常危险,因此我们通常使用名为 safe-bool 习语:在 C++11 中,我们得到显式转换运算符;因此,上述习惯用法已过时:
Since
operator bool()
in itself is pretty dangerous, we usually employ something called the safe-bool idiom:In C++11, we get explicit conversion operators; as such, the above idiom is obsolete: