WG: defining a function<>-object with a return value of the same type (recursive declaration)
Hello, how can I define a function<> object which returns a value of the same type: // doesn't work with gcc-4.1 class X; typedef function< X() > X; X x1 = bind(...); X x2 = x1(); Regards, Oliver
On 5/2/06, Oliver.Kowalke@qimonda.com
how can I define a function<> object which returns a value of the same type:
This was taken from GotW article 57: http://www.gotw.ca/gotw//057.htm struct FuncPtr_; typedef FuncPtr_ (*FuncPtr)(); struct FuncPtr_ { FuncPtr_( FuncPtr pp ) : p( pp ) { } operator FuncPtr() { return p; } FuncPtr p; }; Now we can declare, define, and use f() naturally: FuncPtr_ f() { return f; } // natural return syntax int main() { FuncPtr p = f(); // natural usage syntax p(); } HTH, Michael Fawcett
participants (2)
-
Michael Fawcett
-
Oliver.Kowalke@qimonda.com