Hi, I was programming a stupid server using boost::thread and boost::bind... and sadly I encountered a problem... probably due to my inexpertice with the library. The thing is that i'm creting a boost thread object like this : struct bla{ void member(){} } bla b; boost::thread t( boost::bind( &bla::member , &b) ); this works fine but, i need to bind a member pointer that returns an int, so as i understand i need to do this : boost::bind<int>( &bla::member_that_returns_int , &b) but boost::thread won't accept it in the constructor... So... what I'm asking is.... is there a trick to do this that I'm not aware of?... basically what occucrred to me was to encapsulate de method that returns an int using the () operator... but it seems pretty nasty to me. is there a way to do it staright forward with boost::bind? thanks! Nico
On 5/22/07, Nicolas Emiliani
this works fine but, i need to bind a member pointer that returns an int, so as i understand i need to do this :
boost::bind<int>( &bla::member_that_returns_int , &b)
but boost::thread won't accept it in the constructor...
So... what I'm asking is.... is there a trick to do this that I'm not aware of?... basically what occucrred to me was to encapsulate de method that returns an int using the () operator... but it seems pretty nasty to me.
So what you want is to run that function in a thread, and collect the result when it has finished? Sounds a bit like futures: http://braddock.com/~braddock/future/ http://braddock.com/~braddock/future/future_20070429/README.txt -- Caleb Epstein
participants (2)
-
Caleb Epstein
-
Nicolas Emiliani