Boost Users :
From: Pablo Aguilar (pablo.aguilar_at_[hidden])
Date: 2005-08-29 19:05:41
"BRIDGES Dick" <Dick.Bridges_at_[hidden]> wrote in message
> 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.
> boost::thread doit( boost::bind(Foo::operator(),&f)() );
> Yielded the following [edited to fit] result:
> g++ -D_REENTRANT -I/usr/local -I/usr/local/boost_1_33_0
> -O0 -g3 -Wall -c -fmessage-length=0 -Wno-non-virtual-dtor -omain.o
> ../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]
> 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.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net