diff --git a/eo/src/eoDetSelect.h b/eo/src/eoDetSelect.h index b92150f8..aed55156 100644 --- a/eo/src/eoDetSelect.h +++ b/eo/src/eoDetSelect.h @@ -59,7 +59,7 @@ class eoDetSelect : public eoSelect unsigned remain = target % pSize; unsigned entireCopy = target / pSize; - eoPop::iterator it = _dest.begin(); + typename eoPop::iterator it = _dest.begin(); if (target >= pSize) { diff --git a/eo/src/eoInit.h b/eo/src/eoInit.h index 2e3b48f5..08580aac 100644 --- a/eo/src/eoInit.h +++ b/eo/src/eoInit.h @@ -130,7 +130,7 @@ typedef typename EOT::AtomType AtomType; virtual void operator()(EOT& _chrom) { _chrom.resize(offset + rng.random(extent)); - vector::iterator it; + typename vector::iterator it; for (it=_chrom.begin(); it<_chrom.end(); it++) init(*it); _chrom.invalidate(); diff --git a/eo/src/eoOpContainer.h b/eo/src/eoOpContainer.h index 29c62a56..43465adb 100644 --- a/eo/src/eoOpContainer.h +++ b/eo/src/eoOpContainer.h @@ -145,7 +145,7 @@ class eoProportionalOp : public eoOpContainer { (*ops[i])(_pop); } - catch(eoPopulator::OutOfIndividuals&) + catch( typename eoPopulator::OutOfIndividuals&) {} } virtual string className() const {return "ProportionalOp";} diff --git a/eo/src/eoPop.h b/eo/src/eoPop.h index 1c7b3cce..7c3f8184 100644 --- a/eo/src/eoPop.h +++ b/eo/src/eoPop.h @@ -160,7 +160,7 @@ class eoPop: public vector, public eoObject, public eoPersistent } /** returns an iterator to the best individual DOES NOT MOVE ANYBODY */ - eoPop::iterator it_best_element() + typename eoPop::iterator it_best_element() { typename eoPop::iterator it = max_element(begin(), end()); return it; @@ -181,7 +181,7 @@ class eoPop: public vector, public eoObject, public eoPersistent } /** returns an iterator to the worse individual DOES NOT MOVE ANYBODY */ - eoPop::iterator it_worse_element() + typename eoPop::iterator it_worse_element() { typename eoPop::iterator it = min_element(begin(), end()); return it; @@ -191,7 +191,7 @@ class eoPop: public vector, public eoObject, public eoPersistent slightly faster algorithm than sort to find all individuals that are better than the nth individual. INDIVIDUALS ARE MOVED AROUND in the pop. */ - eoPop::iterator nth_element(int nth) + typename eoPop::iterator nth_element(int nth) { typename eoPop::iterator it = begin() + nth; std::nth_element(begin(), it, end(), greater()); @@ -207,7 +207,7 @@ class eoPop: public vector, public eoObject, public eoPersistent vector fitness(size()); std::transform(begin(), end(), fitness.begin(), GetFitness()); - vector::iterator it = fitness.begin() + which; + typename vector::iterator it = fitness.begin() + which; std::nth_element(fitness.begin(), it, fitness.end(), greater()); return *it; } @@ -221,7 +221,7 @@ class eoPop: public vector, public eoObject, public eoPersistent result.resize(size()); std::transform(begin(), end(), result.begin(), Ref()); - vector::iterator it = result.begin() + which; + typename vector::iterator it = result.begin() + which; std::nth_element(result.begin(), it, result.end(), Cmp()); } diff --git a/eo/src/eoPopulator.h b/eo/src/eoPopulator.h index 7ca1895d..8c97c5ab 100644 --- a/eo/src/eoPopulator.h +++ b/eo/src/eoPopulator.h @@ -122,7 +122,7 @@ public : protected : eoPop& dest; - eoPop::iterator current; + typename eoPop::iterator current; const eoPop& src; private : diff --git a/eo/src/eoRanking.h b/eo/src/eoRanking.h index 800232cb..49bae600 100644 --- a/eo/src/eoRanking.h +++ b/eo/src/eoRanking.h @@ -48,7 +48,7 @@ public: /* helper function: finds index in _pop of _eo, an EOT * */ int lookfor(const EOT *_eo, const eoPop& _pop) { - eoPop::const_iterator it; + typename eoPop::const_iterator it; for (it=_pop.begin(); it<_pop.end(); it++) { if (_eo == &(*it)) diff --git a/eo/src/eoReduce.h b/eo/src/eoReduce.h index 7f737739..f07615f5 100644 --- a/eo/src/eoReduce.h +++ b/eo/src/eoReduce.h @@ -98,7 +98,7 @@ typedef typename EOT::Fitness Fitness; /// helper struct for comparing on pairs // compares the scores // uses the fitness if scores are equals ???? - typedef pair::iterator> EPpair; + typedef pair::iterator> EPpair; struct Cmp { bool operator()(const EPpair a, const EPpair b) const { @@ -175,7 +175,7 @@ class eoLinearTruncate : public eoReduce throw std::logic_error("eoLinearTruncate: Cannot truncate to a larger size!\n"); for (unsigned i=0; i::iterator it = _newgen.it_worse_element(); + typename eoPop::iterator it = _newgen.it_worse_element(); _newgen.erase(it); } } diff --git a/eo/src/eoSelectFromWorth.h b/eo/src/eoSelectFromWorth.h index 45751f3a..516abf22 100644 --- a/eo/src/eoSelectFromWorth.h +++ b/eo/src/eoSelectFromWorth.h @@ -95,7 +95,7 @@ template class eoDetTournamentWorthSelect : public eoSelectFromWorth { public: - typedef vector::iterator worthIterator; + typedef typename vector::iterator worthIterator; /* Default ctor from an eoPerf2Worth object + tournament size */ @@ -134,7 +134,7 @@ template class eoStochTournamentWorthSelect : public eoSelectFromWorth { public: - typedef vector::iterator worthIterator; + typedef typename vector::iterator worthIterator; /* Default ctor from an eoPerf2Worth object + tournament rate */ @@ -172,7 +172,7 @@ template class eoRouletteWorthSelect : public eoSelectFromWorth { public: - typedef vector::iterator worthIterator; + typedef typename vector::iterator worthIterator; /* Default ctor from an eoPerf2Worth object */ diff --git a/eo/src/utils/eoStat.h b/eo/src/utils/eoStat.h index 66f3ffdb..c06188d5 100644 --- a/eo/src/utils/eoStat.h +++ b/eo/src/utils/eoStat.h @@ -225,7 +225,7 @@ private : for (unsigned o = 0; o < value().size(); ++o) { - vector::iterator nth = tmp_pop.begin() + which; + typename vector::iterator nth = tmp_pop.begin() + which; std::nth_element(tmp_pop.begin(), nth, tmp_pop.end(), CmpFitness(o, traits::maximizing(o))); value()[o] = (*nth)->fitness()[o]; } @@ -310,7 +310,7 @@ private : for (unsigned o = 0; o < traits::nObjectives(); ++o) { - eoPop::const_iterator it = max_element(_pop.begin(), _pop.end(), CmpFitness(o, traits::maximizing(o))); + typename eoPop::const_iterator it = max_element(_pop.begin(), _pop.end(), CmpFitness(o, traits::maximizing(o))); value()[o] = it->fitness()[o]; } } diff --git a/eo/src/utils/selectors.h b/eo/src/utils/selectors.h index fe2b39bd..700cd2fb 100644 --- a/eo/src/utils/selectors.h +++ b/eo/src/utils/selectors.h @@ -98,7 +98,7 @@ double sum_fitness(const eoPop& _pop) template double sum_fitness(const eoPop& _pop, std::pair& _minmax) { - eoPop::const_iterator it = _pop.begin(); + typename eoPop::const_iterator it = _pop.begin(); _minmax.first = it->fitness(); _minmax.second = it++->fitness(); @@ -156,7 +156,7 @@ const EOT& roulette_wheel(const eoPop& _pop, double total, eoRng& _gen = rn if (roulette == 0.0) // covers the case where total==0.0 return _pop[_gen.random(_pop.size())]; // uniform choice - eoPop::const_iterator i = _pop.begin(); + typename eoPop::const_iterator i = _pop.begin(); while (roulette > 0.0) { @@ -174,7 +174,7 @@ EOT& roulette_wheel(eoPop& _pop, double total, eoRng& _gen = rng) if (roulette == 0.0) // covers the case where total==0.0 return _pop[_gen.random(_pop.size())]; // uniform choice - eoPop::iterator i = _pop.begin(); + typename eoPop::iterator i = _pop.begin(); while (roulette > 0.0) {