00001 #ifndef eoMOEval_h 00002 #define eoMOEval_h 00003 00004 #include <eoPopEvalFunc.h> 00005 00006 template <class EOT> 00007 class eoMOEval : public eoPopEvalFunc<EOT> { 00008 00009 protected: 00010 eoMOEval(eoEvalFunc<EOT>& eval) : default_loop(eval), pop_eval(default_loop) {} 00011 eoMOEval(eoPopEvalFunc<EOT>& ev) : default_loop(dummy_eval), pop_eval(ev) {} 00012 00013 void eval(eoPop<EOT>& parents, eoPop<EOT>& offspring) { 00014 pop_eval(parents, offspring); 00015 } 00016 00017 private : 00018 00019 class eoDummyEval : public eoEvalFunc<EOT> {public: void operator()(EOT &) {} } dummy_eval; 00020 eoPopLoopEval<EOT> default_loop; 00021 eoPopEvalFunc<EOT>& pop_eval; 00022 00023 }; 00024 00025 00026 #endif