Boost logo

Boost Users :

From: Michael Fawcett (michael.fawcett_at_[hidden])
Date: 2006-05-02 11:12:48


On 5/2/06, Oliver.Kowalke_at_[hidden] <Oliver.Kowalke_at_[hidden]> wrote:
> 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


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