Some changes for using EO with libstdc++V3 and gcc-3.01
This commit is contained in:
parent
0bbe7b84cb
commit
4584fda53d
3 changed files with 35 additions and 17 deletions
|
|
@ -214,8 +214,15 @@ public:
|
||||||
// Now OK to erase some losers
|
// Now OK to erase some losers
|
||||||
for (unsigned i=0; i<oldSize - _newsize; i++)
|
for (unsigned i=0; i<oldSize - _newsize; i++)
|
||||||
{
|
{
|
||||||
EOT & eo = inverse_deterministic_tournament<EOT>(_newgen, t_size);
|
//OLDCODE EOT & eo = inverse_deterministic_tournament<EOT>(_newgen, t_size);
|
||||||
_newgen.erase(&eo);
|
//OLDCODE _newgen.erase(&eo);
|
||||||
|
|
||||||
|
// Jeroen Eggermont stdc++v3 patch
|
||||||
|
// in the new code from stdc++v3 an iterator from a container<T> is no longer an pointer to T
|
||||||
|
// Because eo already contained a fuction using eoPop<EOT>::iterator's we will use the following
|
||||||
|
|
||||||
|
_newgen.erase( inverse_stochastic_tournament(_newgen.begin(), _newgen.end(), t_size) );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
|
|
@ -259,8 +266,16 @@ public:
|
||||||
// Now OK to erase some losers
|
// Now OK to erase some losers
|
||||||
for (unsigned i=0; i<oldSize - _newsize; i++)
|
for (unsigned i=0; i<oldSize - _newsize; i++)
|
||||||
{
|
{
|
||||||
EOT & eo = inverse_stochastic_tournament<EOT>(_newgen, t_rate);
|
//OLDCODE EOT & eo = inverse_stochastic_tournament<EOT>(_newgen, t_rate);
|
||||||
_newgen.erase(&eo);
|
//OLDCODE _newgen.erase(&eo);
|
||||||
|
|
||||||
|
// Jeroen Eggermont stdc++v3 patch
|
||||||
|
// in the new code from stdc++v3 an iterator from a container<T> is no longer an pointer to T
|
||||||
|
// Because eo already contained a fuction using eoPop<EOT>::iterator's we will use the following
|
||||||
|
|
||||||
|
_newgen.erase( inverse_stochastic_tournament(_newgen.begin(), _newgen.end(), t_rate) );
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,10 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
typedef ios ios_base; // not currently defined in GCC
|
// check for stdlibc++v3 which does have ios_base
|
||||||
|
#ifndef _CPP_BITS_IOSBASE_H
|
||||||
|
typedef ios ios_base; // not currently defined in GCC
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
|
|
||||||
|
|
@ -309,14 +309,14 @@ void eoValueParam<std::vector<eoMinimizingFitness> >::setValue(std::string _valu
|
||||||
template <>
|
template <>
|
||||||
std::string eoValueParam<std::vector<void*> >::getValue(void) const
|
std::string eoValueParam<std::vector<void*> >::getValue(void) const
|
||||||
{
|
{
|
||||||
throw runtime_error("I cannot getValue for a vector<EOT*>");
|
throw std::runtime_error("I cannot getValue for a vector<EOT*>");
|
||||||
return string("");
|
return std::string("");
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void eoValueParam<std::vector<void*> >::setValue(std::string)
|
void eoValueParam<std::vector<void*> >::setValue(std::string)
|
||||||
{
|
{
|
||||||
throw runtime_error("I cannot setValue for a vector<EOT*>");
|
throw std::runtime_error("I cannot setValue for a vector<EOT*>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -353,7 +353,7 @@ private :
|
||||||
* See make_algo.h
|
* See make_algo.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class eoParamParamType : public std::pair<string,std::vector<string> >
|
class eoParamParamType : public std::pair<std::string,std::vector<std::string> >
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
eoParamParamType(std::string _value)
|
eoParamParamType(std::string _value)
|
||||||
|
|
@ -361,7 +361,7 @@ public:
|
||||||
readFrom(_value);
|
readFrom(_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
ostream & printOn(ostream & _os) const
|
std::ostream & printOn(std::ostream & _os) const
|
||||||
{
|
{
|
||||||
_os << first;
|
_os << first;
|
||||||
unsigned narg = second.size();
|
unsigned narg = second.size();
|
||||||
|
|
@ -382,9 +382,9 @@ public:
|
||||||
return _os;
|
return _os;
|
||||||
}
|
}
|
||||||
|
|
||||||
istream & readFrom(istream & _is)
|
std::istream & readFrom(std::istream & _is)
|
||||||
{
|
{
|
||||||
string value;
|
std::string value;
|
||||||
_is >> value;
|
_is >> value;
|
||||||
readFrom(value);
|
readFrom(value);
|
||||||
return _is;
|
return _is;
|
||||||
|
|
@ -400,16 +400,16 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// so here we do have arguments
|
// so here we do have arguments
|
||||||
string t = _value.substr(pos+1);// the arguments
|
std::string t = _value.substr(pos+1);// the arguments
|
||||||
_value.resize(pos);
|
_value.resize(pos);
|
||||||
first = _value; // done for the keyword (NOTE: may be empty string!)
|
first = _value; // done for the keyword (NOTE: may be empty string!)
|
||||||
|
|
||||||
// now all arguments
|
// now all arguments
|
||||||
string delim(" (),");
|
std::string delim(" (),");
|
||||||
while ( (pos=t.find_first_not_of(delim)) < t.size())
|
while ( (pos=t.find_first_not_of(delim)) < t.size())
|
||||||
{
|
{
|
||||||
size_t posEnd = t.find_first_of(delim, pos);
|
size_t posEnd = t.find_first_of(delim, pos);
|
||||||
string u(t,pos);
|
std::string u(t,pos);
|
||||||
u.resize(posEnd-pos);
|
u.resize(posEnd-pos);
|
||||||
second.push_back(u);
|
second.push_back(u);
|
||||||
t = t.substr(posEnd);
|
t = t.substr(posEnd);
|
||||||
|
|
@ -418,7 +418,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
// at the moment, the following are defined in eoParser.cpp
|
// at the moment, the following are defined in eoParser.cpp
|
||||||
ostream & operator<<(ostream & _os, const eoParamParamType & _rate);
|
std::ostream & operator<<(std::ostream & _os, const eoParamParamType & _rate);
|
||||||
istream & operator>>(istream & _is, eoParamParamType & _rate);
|
std::istream & operator>>(std::istream & _is, eoParamParamType & _rate);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Reference in a new issue