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