Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 1


|
Conversation : Vector Warning |
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne |
Salut,
Dans mon programme j'utilise des verctor à 2 dimenssions et j'ai à chaque fois que je compile des warnng qui s'affiche c'est très désagréable surtout que ça marche niquel. Donc le warning c'est ça :
Code: \mingw\include\c++\3.4.5\bits\stl_uninitialized.h||In member function `std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > RpgCarteFrame::GetSave()':| \mingw\include\c++\3.4.5\bits\stl_uninitialized.h|82|warning: '__cur' might be used uninitialized in this function| \mingw\include\c++\3.4.5\bits\stl_vector.h||In member function `std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = std::vector<int, std::allocator<int> >, _Alloc = std::allocator<std::vector<int, std::allocator<int> > >]':| \mingw\include\c++\3.4.5\bits\stl_vector.h|715|warning: '__result' might be used uninitialized in this function| \mingw\include\c++\3.4.5\bits\stl_uninitialized.h|82|warning: '__cur' might be used uninitialized in this function| \mingw\include\c++\3.4.5\bits\stl_uninitialized.h|82|warning: '__cur' might be used uninitialized in this function| \mingw\include\c++\3.4.5\bits\stl_uninitialized.h||In member function `void std::vector<_Tp, _Alloc>::_M_fill_insert(__gnu_cxx::__normal_iterator<typename _Alloc::pointer, std::vector<_Tp, _Alloc> >, size_t, const _Tp&) [with _Tp = std::vector<int, std::allocator<int> >, _Alloc = std::allocator<std::vector<int, std::allocator<int> > >]':| \mingw\include\c++\3.4.5\bits\stl_uninitialized.h|82|warning: '__cur' might be used uninitialized in this function| \mingw\include\c++\3.4.5\bits\stl_uninitialized.h|82|warning: '__cur' might be used uninitialized in this function| ||=== Build finished: 0 errors, 6 warnings ===|
Qu'est-ce ça veut dire et comment arranger le problème sachant que je les déclare et crée comme ça :
Code Cpp: //Dans le .h std::vector < std::vector<int> > couche1; std::vector < std::vector<int> > couche2; std::vector < std::vector<int> > couche3; //Dans le .cpp couche1.resize(x); for(i=0;i<couche1.size();i++) { couche1[i].resize(y); } for(i=0;i<couche1.size();i++) { for(j=0;j<couche1[i].size();j++) couche1[i][j] = 0; } couche2 = couche1; couche3 = couche1;
|
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Arf, là ça va, il y a pire ^^....
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne |
Pourquoi ?
|
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Dès que l'on fait qqch avec les templates, le compilateur gueule XD...
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne |
C'est nul et ya pas moyen d'y remédier ?
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Baisses le son ...
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne |
de quoi ?
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Du compilateur qui gueule, comme ça tu ne l'entendras plus....
Désolé -> []
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
@Xav': mouais ..., 7/10 pour te faire plaisir XD... Pour GCC, il y l'option -fpermissive qui permet de réduire certains cris et problèmes (limitation à 500 boucle de récursion templatisées), mais ça ne changera rien à ton problème car ici GCC t'avertit qu'il ne peut pas connaître la taille de tes vectors à la compil'
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne |
Je peut les mettreent de taille 1 ? le problème c'est qu'on dirai que ça marche pas..
|
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
De toute façon GCC ne pourra jamais définir combien de place prend un vecteur de vecteur ^^. Tu n'as pas de limites de taille pour tes vecteurs si c'est ce que tu as compris, ne t'inquiète pas , il y en a pour des trucs complexes (calcul de Sinus, cosinus, et tout les autres calculs mathématique via les templates ) mais c'est pas le cas ici .
Dernière modification par blend (26-11-2007 19:26:38)
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne |
Zut alors j'aime pas voir des warnings ...
|
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Moi non plus, c'est pour ça que j'essaie de bien coder
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
|