嗨,我已經衍生從C++安全布爾成語類我的類從這個頁面:The Safe Bool Idiom by Bjorn Karlsson class Element : public safe_bool<>
{
public:
bool Exists() const;
// boolean_test() is a safe_bool method
bool boolean
我被指出'安全布爾成語',並試圖破譯發生了什麼(解釋supplied on the site是不夠的,不足以讓我瞭解爲什麼它的工作原理),我決定嘗試採取以下將代碼分開並嘗試儘可能簡化它。下面的網站提供的代碼: class Testable {
bool ok_;
typedef void (Testable::*bool_type)() const;
void thi
爲了支持沒有explicit關鍵字的編譯器(例如MSVC 2012),我必須實現安全的bool慣用法。應該對bool進行檢查的類正在建模一個指向許多類的指針,因此它應該可以轉換爲這些指針。下面的代碼描述了一個思路:如果我們使用基於explicit operator bool()執行一切正常 // Uncomment this line to change implementation to 'sa