Warning "might be used uninitialzed" lors de l'ajout d'un constructeur
Bonjour à tous,
Lorsque tente de compiler mon programme, j'ai les warnings suivant :
Code:
1 2 3
| In member function : (un truc bien barbare) :
__top might be used uninitialized in this function
__tmp might be ... (idem) |
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 :mrgreen:
Sans vous mettre tous le code, je vais essayer de vous décrire le structure du code :
Dans le header :
Code:
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 &);
}
} |
Donc au final pmap_type c'est : map<Color32b,vector<Vector3D>>
Dans mon .cpp, je ne fait pas grand chose, mais pourtant :
Code:
1 2
|
Object::Object(const pmap_type & pm):pointMap(pm){} |
Et c'est en rajoutant cette dernière ligne que mes warnings aparaissent...
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 :
Code:
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); |
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 ?
Bref pleins de questions... Merci de bien vouloirs m'éclairer :D