繁体   English   中英

itk :: SmartPointer如何转换为bool?

[英]How is the itk::SmartPointer converted to bool?

ITK库使用智能指针可以隐式转换为bool ,例如在if子句中。 这很方便,但是我想确保它是如何工作的。 我的猜测是C ++使用提供的operator==来与0进行比较,但是我找不到描述此行为的任何文档。 这真的是发生了什么吗? 是该类的Doxygen页面,适用于可能会发现比代码本身更方便的人们。

此转换运算符

   operator ObjectType *() const
        { return m_Pointer; }

允许隐式转换为指针类型,然后可以将其转换为bool

当它起作用时,通常认为这是个坏主意:如果您不小心,可能会意外存储非智能指针,当智能指针销毁其对象时,该指针很可能会失效。 因此,标准的智能指针具有explicit operator bool()以允许在布尔上下文中使用,而显式的get()函数用于真正需要非智能指针时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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