EvolvingObjects
eoEvalFuncPtr.h
00001 
00026 //-----------------------------------------------------------------------------
00027 
00028 #ifndef EOEVALFUNCPTR_H
00029 #define EOEVALFUNCPTR_H
00030 
00031 #include <eoEvalFunc.h>
00032 
00040 #ifdef _MSC_VER
00041 template< class EOT, class FitT = EOT::Fitness, class FunctionArg = const EOT& >
00042 #else
00043 template< class EOT, class FitT = typename EOT::Fitness, class FunctionArg = const EOT& >
00044 #endif
00045 struct eoEvalFuncPtr: public eoEvalFunc<EOT> {
00046 
00053   eoEvalFuncPtr( FitT (* _eval)( FunctionArg ) )
00054     : eoEvalFunc<EOT>(), evalFunc( _eval ) {};
00055 
00057   virtual void operator() ( EOT & _eo )
00058   {
00059     if (_eo.invalid())
00060         _eo.fitness((*evalFunc)( _eo ));
00061   };
00062 
00063   private:
00064     FitT (* evalFunc )( FunctionArg );
00065 };
00066 
00067 #endif
 All Classes Namespaces Files Functions Variables Typedefs Friends