From 07bc61e6940f45755de8671a5aa2a061db3bf4b8 Mon Sep 17 00:00:00 2001 From: maartenkeijzer Date: Tue, 13 Feb 2001 14:43:54 +0000 Subject: [PATCH] Added a bit more documentation, more to follow (I hope) --- eo/src/eoFunctor.h | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/eo/src/eoFunctor.h b/eo/src/eoFunctor.h index e4fd3056..01d96db7 100644 --- a/eo/src/eoFunctor.h +++ b/eo/src/eoFunctor.h @@ -28,8 +28,21 @@ #include -/// Base class for functors to get a nice hierarchy diagram -class eoFunctorBase +/** Base class for functors to get a nice hierarchy diagram + + That's actually quite an understatement as it does quite a bit more than + just that. By having all functors derive from the same base class, we can + do some memory management that would otherwise be very hard. + + The memory management base class is called eoFunctorStore, and it supports + a member add() to add a pointer to a functor. When the functorStore is + destroyed, it will delete all those pointers. So beware: do not delete + the functorStore before you are done with anything that might have been allocated. + + @see eoFunctorStore + +*/ +class eoFunctorBase { public : virtual ~eoFunctorBase() {} @@ -42,7 +55,7 @@ public : struct binary_function_tag {}; }; -/** +/** Basic Function. Derive from this class when defining any procedure. It defines a result_type that can be used to determine the return type @@ -53,12 +66,12 @@ template class eoF : public eoFunctorBase { public : - + /// virtual dtor here so there is no need to define it in derived classes virtual ~eoF() {} typedef R result_type; - + /// The pure virtual function that needs to be implemented by the subclass virtual R operator()() = 0; };