00001 00023 //----------------------------------------------------------------------------- 00024 00025 #ifndef _eoBreed_h 00026 #define _eoBreed_h 00027 00028 00029 //----------------------------------------------------------------------------- 00030 #include <eoPop.h> 00031 #include <eoFunctor.h> 00032 #include <eoSelect.h> 00033 #include <eoTransform.h> 00034 //----------------------------------------------------------------------------- 00035 00045 template<class EOT> 00046 class eoBreed : public eoBF<const eoPop<EOT>&, eoPop<EOT>&, void> 00047 {}; 00048 00049 00050 00056 template <class EOT> 00057 class eoSelectTransform : public eoBreed<EOT> 00058 { 00059 public: 00060 eoSelectTransform(eoSelect<EOT>& _select, eoTransform<EOT>& _transform) : 00061 select(_select), transform(_transform) 00062 {} 00063 00064 void operator()(const eoPop<EOT>& _parents, eoPop<EOT>& _offspring) 00065 { 00066 select(_parents, _offspring); 00067 transform(_offspring); 00068 } 00069 00070 private : 00071 eoSelect<EOT>& select; 00072 eoTransform<EOT>& transform; 00073 }; 00074 00075 #endif
1.4.7