[bind] Problem when bind a templated member function

Hi there, I know it must be very easy but I cannot figure it out myself. Can somehow please take a look at: class task { public: template < class T > void do_it( const T t ) { thread_ptr.reset( new boost::thread( boost::bind( (void (thread::*)(const T)) &thread::_run , this ))); } private: template < class T > void _run( const T t ) {} private: typedef boost::shared_ptr< boost::thread > thread_ptr_t; thread_ptr_t thread_ptr; }; There must be something wrong. I'm using VC2003. The comiler tells me: c:\boost\boost\bind\bind_template.hpp(18) : error C2091: function returns function Thanks ahead, Christian

Christian Henning wrote:
Hi there, I know it must be very easy but I cannot figure it out myself. Can somehow please take a look at:
class task { public:
template < class T > void do_it( const T t ) { thread_ptr.reset( new boost::thread( boost::bind( (void (thread::*)(const T)) &thread::_run , this ))); }
You didn't pass t to _run. Use boost::bind( (void (task::*)(const T)) &task::_run, this, t )
private:
template < class T > void _run( const T t ) {}
participants (2)
-
Christian Henning
-
Peter Dimov