我正在研究std::tr1::shared_ptr<>
如何提供投射到布爾的能力。我想(大概是通過類型提升創建一個智能指針,可以鑄造到bool作爲平凡解,即shared_ptr <>如何安全地允許轉換爲bool?
operator bool() {
return m_Ptr!=0;
}
通常最終被隱式強制轉換爲指針類型時,過去被抓住了),這通常是不希望的。助推器和微軟的實施似乎都使用涉及鑄造到unspecified_bool_type()
的技巧。任何人都可以解釋這種機制如何工作,以及如何防止隱式轉換爲基礎指針類型?
所有優秀的答案,謝謝。很高興能夠給它起一個名字 - 沒有遇到過安全的布爾成語。 – 2010-07-07 10:24:20