Au sujet de g++

Top Page

Reply to this message
Author: Patrick Begou
Date:  
To: Guilde Linux
Subject: Au sujet de g++
Je viens de voir une discussion entre utilisateurs branches de C++. Je
rencontre un probleme avec 2 versions diffrentes de g++:

gnu.gcc.g++      2.95.3.0    installe sur un IBM RISC6000
egcs-c++-1.1.2-30        installe sur RedHat 6.2


une instruction:

cout<<UnObjet.AfficheInfo()<<" ensuite
"<<UnObjet.Modif().AfficheInfo()<<endl;

avec la methode Modif() qui retourne l'objet par reference (return
*this;)

Avec gnu.gcc.g++ 2.95.3.0 les termes sont evalues de gauche a droite (on
affiche l'info avant la modif puis l'info apres la modif)
Avec egcs-c++-1.1.2-30 les termes sont evalues de droite a gauche, c'est
a dire que la modif est d'abord appliquee avant tout affichage !

Je sais que l'operateur = est evalue de la droite vers la gauche (pour
ecrire a=b=c=4;) ce qui est une exception a l'ordre d'evaluation normal
des expressions. Mais qu'en est il de l'operateur << des objets ostream
?

Qui a raison et qui a tort ?

Patrick
--
===============================================================
|  Equipe M.O.S.T.         | http://most.hmg.inpg.fr          |
|  Patrick BEGOU           |       ------------               |
|  LEGI                    | mailto:Patrick.Begou@hmg.inpg.fr |
|  BP 53 X                 | Tel 04 76 82 51 35               |
|  38041 GRENOBLE CEDEX    | Fax 04 76 82 52 71               |

===============================================================