[英]Define operator! for shared_ptr<A>
我在定义operator !
对于我的 class。 我使用shared_ptr<A>
对象,我想使用!
在他们。
shared_ptr<a> b;
bool result = !b; // using my operator, not !shared_ptr
我尝试了几次,但我得到了模棱两可的错误。
shared_ptr b;
bool result = !*b;
bool result = b and !(*b);
shared_ptr
没有operator!
已定义,但您可以比较它所持有的指针,例如:
shared_ptr<a> b;
bool result = !b.get();
或者,它确实定义了一个operator bool
:
shared_ptr<a> b;
bool result = !(bool)b; // or: !static_cast<bool>(b)
或者,它还为nullptr
定义了operator==
:
shared_ptr<a> b;
bool result = (b == nullptr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.