vicente.botet | 17 Jan 15:44
Picon

Re: Futures Review - wait_for_ on fusion sequences

Hi,

Could the wait_for_ functions be overloaded for fusion sequences, e.g.

fusion::vector<shared_future<int>, shared_future<string> > seq;

unsigned i = wait_for_any(seq);

I have checkd the followig code and it works for me.

struct waiter_add {
    waiter_add(boost::detail::future_waiter& waiter) : waiter_(waiter) {}
    boost::detail::future_waiter& waiter_;
    template<typename ACT>
    void operator()(ACT& act) const {
        waiter_.add(act);
    }
};
template<typename FusionSequence>
unsigned wait_for_any(FusionSequence& seq)  {
    boost::detail::future_waiter waiter;
    boost::fusion::for_each(seq, waiter_add(waiter));
    return waiter.wait();
}

Thanks,
Vicente

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Gmane