Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
kanze
(Bastien) wrote in message news:...
Voila, je me pose une question a laquelle je n'ai pu repondre. Soit le programme suivant :
#include <map> #include <iostream>
int main () { std::map <int, int> MaMap; MaMap[1] = MaMap.size (); std::cout << "La valeur de MaMap[1] est : " << MaMap[1] << std::endl; return 0; }
Le probleme est le suivant, l'instruction MaMap[1] = MaMap.size (); a t'elle un comportement determine ?
Non. Ce n'est pas un comportement indéfini (au sens de la norme), mais le résultat n'est pas spécifié -- le compilateur peut appeler ou map::operator[] ou map::size() d'abord.
L'execution me donne soit 1 (compilation avec gcc) soit 0 (compilation avec le compilateur de visual c++).
Je crois que ce sont les seuls deux résultats permis.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
bastien.armand@wanadoo.fr (Bastien) wrote in message
news:<4ba0ee5c.0405020004.452dc2be@posting.google.com>...
Voila, je me pose une question a laquelle je n'ai pu repondre. Soit le
programme suivant :
#include <map>
#include <iostream>
int main ()
{
std::map <int, int> MaMap;
MaMap[1] = MaMap.size ();
std::cout << "La valeur de MaMap[1] est : " << MaMap[1] << std::endl;
return 0;
}
Le probleme est le suivant, l'instruction MaMap[1] = MaMap.size (); a
t'elle un comportement determine ?
Non. Ce n'est pas un comportement indéfini (au sens de la norme), mais
le résultat n'est pas spécifié -- le compilateur peut appeler ou
map::operator[] ou map::size() d'abord.
L'execution me donne soit 1 (compilation avec gcc) soit 0 (compilation
avec le compilateur de visual c++).
Je crois que ce sont les seuls deux résultats permis.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Voila, je me pose une question a laquelle je n'ai pu repondre. Soit le programme suivant :
#include <map> #include <iostream>
int main () { std::map <int, int> MaMap; MaMap[1] = MaMap.size (); std::cout << "La valeur de MaMap[1] est : " << MaMap[1] << std::endl; return 0; }
Le probleme est le suivant, l'instruction MaMap[1] = MaMap.size (); a t'elle un comportement determine ?
Non. Ce n'est pas un comportement indéfini (au sens de la norme), mais le résultat n'est pas spécifié -- le compilateur peut appeler ou map::operator[] ou map::size() d'abord.
L'execution me donne soit 1 (compilation avec gcc) soit 0 (compilation avec le compilateur de visual c++).
Je crois que ce sont les seuls deux résultats permis.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34