繁体   English   中英

定义运算符! 对于 shared_ptr<a></a>

[英]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; 

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM