|
Boost Users : |
Subject: Re: [Boost-users] [phoenix] - std::for_each - How to call member variable that is a boost::function?
From: Aaron_Wright_at_[hidden]
Date: 2013-04-30 17:07:30
Yes it does compile, but it doesn't do anything. I'm looking for it to
print out the numbers. I need the callback to be called.
--- Aaron Wright From: Igor R <boost.lists_at_[hidden]> To: boost-users_at_[hidden] Date: 04/30/2013 10:04 AM Subject: Re: [Boost-users] [phoenix] - std::for_each - How to call member variable that is a boost::function? Sent by: "Boost-users" <boost-users-bounces_at_[hidden]> > namespace bp = boost::phoenix; > namespace bpa = bp::arg_names; > > struct Foo > { > boost::function< void() > callback; > > Foo(boost::function< void() > const& callback) : > callback(callback) > { > } > }; > > main() > { > std::list< Foo > foos; > > foos.push_back(Foo(std::cout << bp::val(1) << '\n')); > foos.push_back(Foo(std::cout << bp::val(2) << '\n')); > foos.push_back(Foo(std::cout << bp::val(3) << '\n')); > > std::for_each( > foos.begin(), > foos.end(), > bp::bind(&Foo::callback, bpa::arg1)); > } > > If I wrap the bind(...) in another bind(...) it'll work, but is that the > right way? I'm not binding anything, I just want the callback called. FWIW, the following code compiles in MSVC10 with boost 1.53 (basically, your code in form of sscce): #include <boost/phoenix.hpp> #include <iostream> #include <boost/function.hpp> #include <list> namespace bp = boost::phoenix; namespace bpa = bp::arg_names; struct Foo { boost::function< void() > callback; Foo(boost::function< void() > const& callback) : callback(callback) { } }; int main() { std::list< Foo > foos; foos.push_back(Foo(std::cout << bp::val(1) << '\n')); foos.push_back(Foo(std::cout << bp::val(2) << '\n')); foos.push_back(Foo(std::cout << bp::val(3) << '\n')); std::for_each( foos.begin(), foos.end(), bp::bind(&Foo::callback, bpa::arg1)); } _______________________________________________ Boost-users mailing list Boost-users_at_[hidden] http://lists.boost.org/mailman/listinfo.cgi/boost-users
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