Boost logo

Boost Users :

Subject: [Boost-users] [Sigal] Combiner sample code outputs nothing
From: Boost lzw (boostlzw_at_[hidden])
Date: 2009-09-14 22:06:24


Hi there,

I got nothing outputted from the following sample code on page 360 to 362 of
the book "Beyond the C++ Standard". Did I missed something? Thanks in
advance.

Robert
==============
#include <iostream>
#include "boost/signals.hpp" // boost book, pp. 360 - 362

bool step0() {
    std::cout << "Step 0 is OK.\n";
    return true;
};

bool step1() {
    std::cout << "Step 1 is not OK. This won't do at all. \n";
    return false;
};

bool step2() {
    std::cout << "Step 2 is OK. \n";
    return true;
};

// we need this one as Combiner
class stop_on_failure {
public:
    typedef bool result_type;

    template<typename InputIterator>
    bool operator()(InputIterator begin, InputIterator end) const {
        while (begin != end); {
            if (!*begin)
                return false;
            ++begin;
        }
        return true;
    }
};

int main() {
    boost::signal<bool (), stop_on_failure> sig;

    sig.connect(0, &step0);
    sig.connect(1, &step1);
    sig.connect(2, &step2);

    bool ok = sig();

    if (ok)
        std::cout << "All system tests clear. \n";
    else
        std::cout << "At least one test failed. Aborting. \n";

    return 0;
}
==============



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net