
That solved my problem. Thanks! "Steven Watanabe" <watanabesj@gmail.com> escribió en el mensaje news:4A2858BD.3050704@providere-consulting.com... AMDG Roberto Giménez wrote:
I've registered bind:
#include <boost/typeof/typeof.hpp> #include <boost/bind.hpp> #include <iostream> #include <typeinfo>
void test() { }
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::bind_t, 3);
int main(int argc, char** argv) { typedef BOOST_TYPEOF_TPL(boost::bind(&test)) Type;
std::cout << typeid(Type).name() << std::endl; }
But this prints 'int', but should be: boost::_bi::bind_t<void, void(*)(), boost::_bi::list0> What's wrong?
A few more registrations are missing. Unfortunately, Sun CC silently substitutes int in some places where template instantiation fails. #define BOOST_TYPEOF_EMULATION #include <boost/typeof/typeof.hpp> #include <boost/bind.hpp> #include <iostream> #include <typeinfo> void test() { } #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::bind_t, 3); BOOST_TYPEOF_REGISTER_TYPE(boost::_bi::list0); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list1, 1); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list2, 2); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list3, 3); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list4, 4); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list5, 5); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list6, 6); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list7, 7); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list8, 8); BOOST_TYPEOF_REGISTER_TEMPLATE(boost::_bi::list9, 9); int main(int argc, char** argv) { typedef BOOST_TYPEOF(boost::bind(&test)) Type; std::cout << typeid(Type).name() << std::endl; } In Christ, Steven Watanabe