Re: [Paradiseo-help] Problème avec moeo et une définition de gène spécifique

Jerome Desmet desmet.jerome at gmail.com
Lun 28 Avr 15:59:06 CEST 2008


Bonjour,

Je vous remercie pour l'aide apportée.

J'ajoute à votre réponse que les deux opérateurs doivent de plus avoir  
l'attribut friend.

Bien à vous,

Jérôme Desmet


Le 28-avr.-08 à 13:26, paradiseo-help a écrit :

> Jerome Desmet a écrit :
>> Bonjour,
>>
>> Je suis actuellement occuper à travailler avec Paradiseo-moeo pour  
>> mon TFE.
>>
>> Il se trouve que j'ai un problème à la compilation sans doute à  
>> cause de mon genotype particulier. En effet celui-ci est composé de  
>> gènes spécifiques formant une classe à eux seuls.
>> Pour etre clair, le genotype est un vecteur de Gene lesquels sont  
>> une classe à part.
>>
>> Dans moeo je fais dériver le génotype utilisé de  moeoVector <  
>> moeoFlieObjectiveVector , double , double , FL::Gene >
>> /
>> /
>> /Les erreurs suivantes apparaissent: /
>>
>> /
>> /usr/include/c++/4.0.0/bits/stream_iterator.h:196: error: no match  
>> for 'operator<<' in '*((std::ostream_iterator<FL::Gene, char,  
>> std::char_traits<char> >*)this)->std::ostream_iterator<FL::Gene,  
>> char, std::char_traits<char> >::_M_stream << __value'/
>>
>> /
>> /
>> /
>> /
>> //Users/Jerome/paradiseo-1.1/paradiseo-moeo/src/core/moeoVector.h: 
>> 137: error: no match for 'operator>>' in '_is >> atom'/
>>
>> /
>>
>>
>> Ayant cherché, il semble que atom est un objet AtomType templatisé  
>> par mon Gene.
>>
>> Je suppose donc que le problème vient du pendant eo de printOn(...)  
>> et readFrom(...) pour le génotype.
>>
>> Ayant tenté de définir les opérateurs >> et <<, je n'arrive  
>> toujours pas à compiler. Auriez-vu un exemple à me fournir avec un  
>> gène représenté par une classe autre que double int etc et donc  
>> nécessitant la définition de ces opérateurs?
>>
>> Je vous remercie fortement d'avance,
>>
>> Jérôme Desmet
>>
>>
>> /
>>
>>
>> /
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Paradiseo-help mailing list
>> Paradiseo-help at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-help
>>
> Bonjour,
>
> Il faut que vous définissiez, dans votre classe "Gene" les  
> opérateurs "<<" et ">>" afin d'écrire ou de lire le contenu d'un gène.
> Par exemple, si votre gène ne contient qu'un seul entier "toto" :
>
> std::ostream& operator<<(std::ostream & os, const Gene & g)
> {
>  os << g.toto;
>  return os;
> }
>
> std::istream& operator>>(std::istream & is, Gene & g)
> {
>   int value;
>   is >> value;
>   g.toto = value;
>   return is;
> }
>
> Ces deux fonctions sont utilisées dans les fonctions "printOn" et  
> "readFrom" de chaque objet EO ou MOEO.
>
> Cordialement,
> ParadisEO team

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.gforge.inria.fr/pipermail/paradiseo-help/attachments/20080428/f75c98d0/attachment.html>


Plus d'informations sur la liste de diffusion Paradiseo-help