Bonjour à tous,
Lorsque tente de compiler mon programme, j'ai les warnings suivant :
Ces variables sont définie dans un fichier de la STL: stl_tree.h, donc ça ne m'aide pas vraiment pour savoir quoi modifier dans mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 In member function : (un truc bien barbare) : __top might be used uninitialized in this function __tmp might be ... (idem)
Sans vous mettre tous le code, je vais essayer de vous décrire le structure du code :
Dans le header :
Donc au final pmap_type c'est : map<Color32b,vector<Vector3D>>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 namespace point { class Vector3D {}; } namespace color { struct Color32b {}; } namespace object { typedef std::vector<point::Vector3D> pset_type; typedef std::map<color::Color32b,pset_type> pmap_type; class Object { pmap_type pointMap; Object(const pmap_type &); } }
Dans mon .cpp, je ne fait pas grand chose, mais pourtant :
Et c'est en rajoutant cette dernière ligne que mes warnings aparaissent...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Object::Object(const pmap_type & pm):pointMap(pm){}
Et donc mes questions sont les suivantes :
1) Qu'y a t-il dans mon code pourrait ne pas initialiser ces 2 variables ?
2) Vu que ce n'est que des warnings, ce n'est pas trop grave pour l'instant, mais que risque t-il de se passer à l'execution ? Y a t il vraiment un risque d'un comportement "indertéminé" à l'execution ?
3) Au début, je n'avais qu'une classe comme ceci :
Et elle ne déclenchait aucun warning... Donc le problème serait bien sur la map ? Mais pourquoi en faisant pareil avec le vector ça le faisait pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //Dans le header : class Object { std::vector<Vector3D> pointSet; Object(const std::vector<Vector3D> &); } //Dans le .cpp Object::Object(const std::vector<Vector3D> & ps):pointSet(ps);
Bref pleins de questions... Merci de bien vouloirs m'éclairer![]()
Partager