With boost::bind, which doesn't evaluate its first argument, you'll need to use apply<>, as explained in http://www.boost.org/doc/libs/1_36_0/libs/bind/bind.html#nested_binds