Boost bind with asio::placeholders::error
- by Leandro
Why it doesn't work?
--- boost_bind.cc ---
#include 
#include 
#include 
void func1 (const int& i)
{ }
void func2 (const ::asio::error_code& e)
{ }
int main ()
{
    ::boost::function f1 = ::boost::bind (&func1, 1);
    // it doesn't work!
    ::boost::function f2 = ::boost::bind (&func2, ::asio::placeholders::error);
    return 0;
}
This is the error:
while_true@localhost:~ g++ -lpthread boost_bind.cc -o boost_bind
In file included from boost_bind.cc:2:
/usr/include/boost/bind.hpp: In member function ‘void boost::_bi::list1::operator()(boost::_bi::type, F&, A&, int) [with F = void (*)(const asio::error_code&), A = boost::_bi::list0, A1 = boost::arg (*)()]’:
/usr/include/boost/bind/bind_template.hpp:20:   instantiated from ‘typename boost::_bi::result_traits::type boost::_bi::bind_t::operator()() [with R = void, F = void (*)(const asio::error_code&), L = boost::_bi::list1 (*)()]’
/usr/include/boost/function/function_template.hpp:152:   instantiated from ‘static void boost::detail::function::void_function_obj_invoker0::invoke(boost::detail::function::function_buffer&) [with FunctionObj = boost::_bi::bind_t (*)() , R = void]’
/usr/include/boost/function/function_template.hpp:904:   instantiated from ‘void boost::function0::assign_to(Functor) [with Functor = boost::_bi::bind_t (*)() , R = void]’
/usr/include/boost/function/function_template.hpp:720:   instantiated from ‘boost::function0::function0(Functor, typename boost::enable_if_c::type) [with Functor = boost::_bi::bind_t (*)() , R = void]’
/usr/include/boost/function/function_template.hpp:1040:   instantiated from ‘boost::function::function(Functor, typename boost::enable_if_c::type) [with Functor = boost::_bi::bind_t (*)() , R = void]’
boost_bind.cc:14:   instantiated from here
/usr/include/boost/bind.hpp:232: error: no match for ‘operator[]’ in ‘a[boost::_bi::storage1 (*)()::a1_ [with int I = 1]]’
while_true@localhost:~