EvolvingObjects
eoBreed.h
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 
00047 template<class EOT>
00048 class eoBreed : public eoBF<const eoPop<EOT>&, eoPop<EOT>&, void>
00049 {};
00050 
00051 
00052 
00060 template <class EOT>
00061 class eoSelectTransform : public eoBreed<EOT>
00062 {
00063     public:
00064         eoSelectTransform(eoSelect<EOT>& _select, eoTransform<EOT>& _transform) :
00065         select(_select), transform(_transform)
00066         {}
00067 
00068         void operator()(const eoPop<EOT>& _parents, eoPop<EOT>& _offspring)
00069         {
00070             select(_parents, _offspring);
00071             transform(_offspring);
00072         }
00073 
00074     private :
00075         eoSelect<EOT>& select;
00076         eoTransform<EOT>& transform;
00077 };
00078 
00079 #endif
 All Classes Namespaces Files Functions Variables Typedefs Friends