|
Boost Users : |
Subject: [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 12:00:49
I'm a little confused on the correct way to lazily call a boost::function
in a phoenix expression. For example, this doesn't do anything:
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.
--- Aaron Wright
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