Boost logo

Boost :

Subject: [boost] [safebool] Can we generalize it and put it into utilities?
From: Vladimir.Batov_at_[hidden]
Date: 2009-03-29 17:18:40

Repeating safe-bool scaffolding over and over again is a real nuisance. It
is worse for the end users as not exactly everyone is intimately familiar
with the issue and the safe-bool workaround. Can we generalize it and put
something like the following into utilities?

struct safebool
    typedef void (safebool::*unspecified_bool_type)() const;
    typedef unspecified_bool_type result;

    explicit safebool(bool v) : value_(v) {}

    operator result() const { return value_ ? &safebool::internal_bool :
0; }


    void internal_bool() const {};

    bool value_;

That way all we (and the users) will have to do to deploy the technique
will be

class Foo
{ ...
    operator safebool::result() const { return safebool(my_condition); }

This seems simple and hassle-free.


Boost list run by bdawes at, gregod at, cpdaniel at, john at