fixes for gcc-4 compilation -- still have a linker problem

This commit is contained in:
kuepper 2005-12-07 15:40:23 +00:00
commit adbc5dd461
4 changed files with 66 additions and 57 deletions

View file

@ -21,7 +21,7 @@
Contact: todos@geneura.ugr.es, http://geneura.ugr.es Contact: todos@geneura.ugr.es, http://geneura.ugr.es
Marc.Schoenauer@polytechnique.fr Marc.Schoenauer@polytechnique.fr
mak@dhi.dk mak@dhi.dk
*/ */
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef _eoFunctorStore_h #ifndef _eoFunctorStore_h
@ -32,9 +32,9 @@
class eoFunctorBase; class eoFunctorBase;
/** /**
eoFunctorStore is a class that stores functors that are allocated on the eoFunctorStore is a class that stores functors that are allocated on the
heap. This class can be used in factories to store allocated memory for heap. This class can be used in factories to store allocated memory for
dynamically created functors. dynamically created functors.
*/ */
class eoFunctorStore class eoFunctorStore
{ {
@ -50,12 +50,14 @@ public:
template <class Functor> template <class Functor>
Functor& storeFunctor(Functor* r) Functor& storeFunctor(Functor* r)
{ {
// If the compiler complains about the following line, check if you really are giving it a pointer to an eoFunctorBase derived object // If the compiler complains about the following line,
// check if you really are giving it a pointer to an
// eoFunctorBase derived object
vec.push_back(r); vec.push_back(r);
return *r; return *r;
} }
private : private :
/// no copying allowed /// no copying allowed
eoFunctorStore(const eoFunctorStore&); eoFunctorStore(const eoFunctorStore&);

View file

@ -186,7 +186,7 @@ template<class EOT> class eoDetUniformMutation: public eoMonOp<EOT>
// scale to the range - if any // scale to the range - if any
for (unsigned i=0; i<bounds.size(); i++) for (unsigned i=0; i<bounds.size(); i++)
if (bounds.isBounded(i)) if (bounds.isBounded(i))
epsilon[i] *= _epsilon*bounds.range(i); epsilon[i] *= _epsilon[i]*bounds.range(i);
} }
/// The class name. /// The class name.

View file

@ -75,6 +75,12 @@ eoEsChromInit<EOT> & do_make_genotype(eoParser& _parser, eoState& _state, EOT)
"initBounds", "initBounds",
"Bounds for initialization (MUST be bounded)", "Bounds for initialization (MUST be bounded)",
'B', "Genotype Initialization"); 'B', "Genotype Initialization");
// now some initial value for sigmas - even if useless?
// should be used in Normal mutation
eoValueParam<std::string>& sigmaParam
= _parser.getORcreateParam(std::string("0.3"), "sigmaInit",
"Initial value for Sigmas (with a '%' -> scaled by the range of each variable)",
's',"Genotype Initialization");
// check if there is a vecSigmaInit // check if there is a vecSigmaInit
eoParam *vecSigmaParam = _parser.getParamWithLongName("vecSigmaInit"); eoParam *vecSigmaParam = _parser.getParamWithLongName("vecSigmaInit");
if(vecSigmaParam) { if(vecSigmaParam) {

View file

@ -59,6 +59,7 @@ public:
using eoVector< FitT, bool >::begin; using eoVector< FitT, bool >::begin;
using eoVector< FitT, bool >::end; using eoVector< FitT, bool >::end;
using eoVector< FitT, bool >::resize;
using eoVector< FitT, bool >::size; using eoVector< FitT, bool >::size;
/** /**