proj home

Files   Classes   Functions   Hierarchy  

fnobj.h

Go to the documentation of this file.
00001 #ifndef FNOBJ_H
00002 #define FNOBJ_H
00003 
00004 /*
00005   Implmenting functional objects with virtual functions.
00006 
00007   Use templates if you want direct bindings, this is for
00008   dynamic purposes.
00009 */
00010 
00016 template< class A0 >
00017 class fnobj0
00018 {
00019 public:
00020 
00021   virtual A0 operator () () = 0;
00022   virtual ~fnobj0() {}
00023 };
00024 
00030 template< class A0 >
00031 class fnobj0const
00032 {
00033 public:
00034 
00035   virtual A0 operator () () const = 0;
00036   virtual ~fnobj0const() {}
00037 };
00038 
00039 
00045 template< class A0, class A1 >
00046 class fnobj1
00047 {
00048 public:
00049 
00050   virtual A0 operator () (A1) = 0;
00051   virtual ~fnobj1() {}
00052 };
00053 
00059 template< class A0, class A1 >
00060 class fnobj1const
00061 {
00062 public:
00063 
00064   virtual A0 operator () (A1) const = 0;
00065   virtual ~fnobj1const() {}
00066 };
00067 
00073 template< class A0, class A1, class A2 >
00074 class fnobj2
00075 {
00076 public:
00077 
00078   virtual A0 operator () (A1,A2) = 0;
00079   virtual ~fnobj2() {}
00080 };
00081 
00087 template< class A0, class A1, class A2 >
00088 class fnobj2const
00089 {
00090 public:
00091 
00092   virtual A0 operator () (A1,A2) const = 0;
00093   virtual ~fnobj2const() {}
00094 };
00095 
00096 
00102 template< class A0, class A1, class A2, class A3 >
00103 class fnobj3
00104 {
00105 public:
00106 
00107   virtual A0 operator () (A1,A2,A3) = 0;
00108   virtual ~fnobj3() {}
00109 };
00110 
00116 template< class A0, class A1, class A2, class A3 >
00117 class fnobj3const
00118 {
00119 public:
00120 
00121   virtual A0 operator () (A1,A2,A3) const = 0;
00122   virtual ~fnobj3const() {}
00123 };
00124 
00125 
00126 #endif
00127 

Generated on Fri Mar 4 00:49:29 2011 for Chelton Evans Source by  doxygen 1.5.8