/* "peoEvalFuncPSO.h" * * * (c) OPAC Team, October 2007 * * Contact: clive.canape@inria.fr */ #ifndef PEOEVALFUNCPSO_H #define PEOEVALFUNCPSO_H #include //! peoEvalFuncPSO: This class //! takes an existing function pointer and converts it into a evaluation //! function class. #ifdef _MSC_VER template< class POT, class FitT = POT::Fitness, class FunctionArg = const POT& > #else template< class POT, class FitT = typename POT::Fitness, class FunctionArg = const POT& > #endif struct peoEvalFuncPSO: public eoEvalFunc { peoEvalFuncPSO( FitT (* _eval)( FunctionArg ) ) : eoEvalFunc(), evalFunc( _eval ) {}; //!Applies the evaluation function to a PEO virtual void operator() ( POT & _peo ) { _peo.fitness((*evalFunc)( _peo )); }; private: FitT (* evalFunc )( FunctionArg ); }; #endif