00001 #ifndef GLUTILS_H_
00002 #define GLUTILS_H_
00003 #include <string>
00004
00005 #include <NLstl_utils.h>
00006
00007 #include "GLBaseOrganism.h"
00011 class GLUtils
00012 {
00013 public:
00017 GLUtils() {};
00018
00022 virtual ~GLUtils() {};
00023
00030 static void assertEvaluated(const GLBaseOrganism *organism,
00031 const string& message = "");
00032
00041 template<class sourceOrg, class targetOrg>
00042 static void makeHardCopy(const vector<sourceOrg*>& source,
00043 vector<targetOrg*>& target)
00044 {
00045
00046 for_each(target.begin(), target.end(),
00047 nlutils::DeleteObject());
00048 target.clear();
00049 target.reserve(source.size());
00050 transform(source.begin(),
00051 source.end(),
00052 back_inserter(target),
00053 GLBaseOrganism::Cloner(false));
00054 }
00061 static void printVectorOfOrganisms(ostream& out,
00062 const TGLVectorOfOrganisms& organisms);
00063
00070 static void printVectorOfOrganisms(ostream& out,
00071 const TGLVectorOfOrganismsConst& organisms);
00072
00073 };
00074 #endif