嗨,我已经衍生从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