
I'm trying to compile this little program: #include <boost/bind.hpp> #include <iostream> namespace tester { class Test { public: void do_test(void) { std::cout << "Done!" << std::endl; }; }; }; int main(void) { tester::Test x; bind(&tester::Test::do_test, &x, _1)(); return(0); } But I end up with this error (full error trace below): /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind.hpp:63: error: ` void (tester::Test::*)()' is not a class, struct, or union type It looks like somewhere along the way the wrong template specialization is chosen for result type deduction. Am I doing something wrong or is this a known problem? I tried lambda's bind but that also gives an error. It's a different error but I believe it amounts to the same problem. Thanks! -Dave ------------------------ bind.cc:16: instantiated from here /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind.hpp:63: error: ` void (tester::Test::*)()' is not a class, struct, or union type /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind/bind_template.hpp: In instantiation of `boost::_bi::bind_t<boost::_bi::unspecified, void (tester::Test::*)(), boost::_bi::list2<boost::_bi::value<tester::Test*>, boost::arg<1> > >': /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind.hpp:1409: instantiated from `boost::_bi::bind_t<boost::_bi::unspecified, F, typename boost::_bi::list_av_2<A1, A2>::type> boost::bind(F, A1, A2) [with F = void (tester::Test::*)(), A1 = tester::Test*, A2 = boost::arg<1>]' bind.cc:16: instantiated from here /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind/bind_template.hpp:15: error: no type named `type' in `struct boost::_bi::result_traits<boost::_bi::unspecified, void (tester::Test::*)()> ' /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind/bind_template.hpp:18: error: no type named `type' in `struct boost::_bi::result_traits<boost::_bi::unspecified, void (tester::Test::*)()> ' /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind/bind_template.hpp:24: error: no type named `type' in `struct boost::_bi::result_traits<boost::_bi::unspecified, void (tester::Test::*)()> ' /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind/bind_template.hpp:30: error: no type named `type' in `struct boost::_bi::result_traits<boost::_bi::unspecified, void (tester::Test::*)()> ' /tools/i686-pc-linux-gnu/include/boost-1_33_1/boost/bind/bind_template.hpp:30: confused by earlier errors, bailing out make: *** [bind.o] Error 1 Compilation exited abnormally with code 2 at Mon Jan 9 17:08:20