"BRIDGES Dick"
After I figured out I had to use boost::ref(f) with my real class, the second form worked fine. I had a problem with the first form though. <code> boost::thread doit( boost::bind(Foo::operator(),&f)() ); </code> Yielded the following [edited to fit] result: <result> g++ -D_REENTRANT -I/usr/local -I/usr/local/boost_1_33_0 -I/usr/local/include -O0 -g3 -Wall -c -fmessage-length=0 -Wno-non-virtual-dtor -omain.o ../main.cpp ../main.cpp: In function `int main(int, char**)': ../main.cpp:22: error: invalid use of non-static member function `void my_namespace::Foo::operator()()' [snipped a lot] Regards, Dick Bridges
You need to write &Foo::operator() [note the address-of operator], to mean a member function pointer, while Foo::operator() means trying to call operator() as if it were a static method of the Foo class. HTH Pablo