IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

Warnings a tout va avec la classe vector


Sujet :

SL & STL C++

  1. #1
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut Warnings a tout va avec la classe vector
    Je cherche a modifier l'exemple de la FAQ dont voici le code:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    #include <vector>
    #include <sstream>
    #include <iostream>
    #include <iterator>
    int main()
    {
    using namespace std;
    string str = "mot1 mot2 mot3 mot4 mot5 mot6";
    vector<string> str_list; // liste de mots
    // remplir la liste de mots
    istringstream iss( str );
    copy(
    istream_iterator<string>( iss ),
    istream_iterator<string>(),
    back_inserter( str_list ) );
    // afficher la liste de mots sur cout
    copy(
    str_list.begin(),
    str_list.end(),
    ostream_iterator<string>( cout, "\n" ) );
    // reconstituer une string à partir de la liste de mots
    ostringstream oss;
    copy(
    str_list.begin(),
    str_list.end(),
    ostream_iterator<string>( oss, " " ) );
    string s = oss.str();
    cout << s << '\n'; // "mot1 mot2 mot3 mot4 mot5 mot6"
    }
    La compilation fonctionne parfaitement....

    en ceci:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    #include <vector>
    #include <sstream>
    #include <iostream>
    #include <iterator>
    	using namespace std;
    vector<std::string> returnCut(string str)
    {
    	vector<string> str_list; // liste de mots
    	// remplir la liste de mots
    	istringstream iss( str );
    	copy(
    	istream_iterator<string>( iss ),
    	istream_iterator<string>(),
    	back_inserter( str_list ) );
    	return str_list;
     
    }
     
    int main()
    {
     
    	string str = "mot1 mot2 mot3 mot4 mot5 mot6";
    	vector<string> str_list; // liste de mots
    	// remplir la liste de mots
    	istringstream iss( str );
     
    	str_list =  returnCut(str);
     
     
    	// afficher la liste de mots sur cout
    	copy(
    	str_list.begin(),
    	str_list.end(),
    	ostream_iterator<string>( cout, "\n" ) );
    	// reconstituer une string à partir de la liste de mots
    	ostringstream oss;
    	copy(
    	str_list.begin(),
    	str_list.end(),
    	ostream_iterator<string>( oss, " " ) );
    	string s = oss.str();
    	cout << s << '\n'; // "mot1 mot2 mot3 mot4 mot5 mot6"
    }
    La compilation engendre 20 warnings, dont je ne comprend pas tres bien l'origine. Je met les warnings obtenus:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    --------------------Konfiguration: test - Win32 Debug--------------------
    Kompilierung läuft...
    main.cpp
    c:\program files\microsoft visual studio\vc98\include\vector(48) : warning C4786: '??0?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@IABV
    ?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
            Z:\test\main.cpp(8) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,str
    uct std::char_traits<char>,class std::allocator<char> > > >'
    c:\program files\microsoft visual studio\vc98\include\vector(61) : warning C4786: '??0?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PBV?
    $basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@0ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
            Z:\test\main.cpp(8) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,str
    uct std::char_traits<char>,class std::allocator<char> > > >'
    c:\program files\microsoft visual studio\vc98\include\vector(103) : warning C4786: '?rbegin@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QA
    E?AV?$reverse_iterator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@AAV12@PAV12@H@2@XZ' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
            Z:\test\main.cpp(8) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,str
    uct std::char_traits<char>,class std::allocator<char> > > >'
    c:\program files\microsoft visual studio\vc98\include\vector(105) : warning C4786: '?rbegin@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QB
    E?AV?$reverse_iterator@PBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@ABV12@PBV12@H@2@XZ' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
            Z:\test\main.cpp(8) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,str
    uct std::char_traits<char>,class std::allocator<char> > > >'
    c:\program files\microsoft visual studio\vc98\include\vector(107) : warning C4786: '?rend@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?
    AV?$reverse_iterator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@AAV12@PAV12@H@2@XZ' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
            Z:\test\main.cpp(8) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,str
    uct std::char_traits<char>,class std::allocator<char> > > >'
    c:\program files\microsoft visual studio\vc98\include\vector(108) : warning C4786: '?rend@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?
    AV?$reverse_iterator@PBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@ABV12@PBV12@H@2@XZ' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
            Z:\test\main.cpp(8) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,str
    uct std::char_traits<char>,class std::allocator<char> > > >'
    c:\program files\microsoft visual studio\vc98\include\iterator(74) : warning C4786: '?back_inserter@std@@YA?AV?$back_insert_iterator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits
    @D@std@@V?$allocator@D@2@@std@@@2@@std@@@1@AAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@1@@Z' : Bezeichner wurde auf '255' Zeichen in den Bro
    wser-Informationen reduziert
            Z:\test\main.cpp(15) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::back_insert_iterator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator
    <class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > >'
    c:\program files\microsoft visual studio\vc98\include\iterator(80) : warning C4786: '??0?$back_insert_iterator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D
    @2@@std@@@2@@std@@@std@@QAE@AAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@1@@Z' : Bezeichner wurde auf '255' Zeichen in den Browser-Informatio
    nen reduziert
            Z:\test\main.cpp(15) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::back_insert_iterator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator
    <class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > >'
    c:\program files\microsoft visual studio\vc98\include\iterator(84) : warning C4786: '??4?$back_insert_iterator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D
    @2@@std@@@2@@std@@@std@@QAEAAV01@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
            Z:\test\main.cpp(15) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::back_insert_iterator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator
    <class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > >'
    Z:\test\main.cpp(15) : warning C4786: '?copy@std@@YA?AV?$back_insert_iterator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@1@V?$istream_i
    terator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@DU?$char_traits@D@2@@1@0V21@@Z' : Bezeichner wurde auf '255' Zeichen in den Browser-Informationen reduziert
    Z:\test\main.cpp(18) : warning C4786: 'std::reverse_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<ch
    ar>,std::allocator<char> > const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    Z:\test\main.cpp(18) : warning C4786: 'std::reverse_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,st
    d::allocator<char> > &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    Z:\test\main.cpp(48) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
    c:\program files\microsoft visual studio\vc98\include\vector(39) : warning C4786: 'std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
     >::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    c:\program files\microsoft visual studio\vc98\include\vector(52) : warning C4786: 'std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
     >::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    c:\program files\microsoft visual studio\vc98\include\vector(60) : warning C4786: 'std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
     >::~vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    c:\program files\microsoft visual studio\vc98\include\xutility(20) : warning C4786: '__ehhandler$?copy@std@@YA?AV?$back_insert_iterator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_tra
    its@D@std@@V?$allocator@D@2@@std@@@2@@std@@@1@V?$istream_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@DU?$char_traits@D@2@@1@0V21@@Z' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    c:\program files\microsoft visual studio\vc98\include\xutility(20) : warning C4786: '__unwindfunclet$?copy@std@@YA?AV?$back_insert_iterator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char
    _traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@1@V?$istream_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@DU?$char_traits@D@2@@1@0V21@@Z$1' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    c:\program files\microsoft visual studio\vc98\include\xutility(20) : warning C4786: '__unwindfunclet$?copy@std@@YA?AV?$back_insert_iterator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char
    _traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@1@V?$istream_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@DU?$char_traits@D@2@@1@0V21@@Z$0' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    c:\program files\microsoft visual studio\vc98\include\iterator(78) : warning C4786: 'std::back_insert_iterator<std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<ch
    ar>,std::allocator<char> > > > >::back_insert_iterator<std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >' : Bezeichner wurde auf
     '255' Zeichen in den Debug-Informationen verkürzt
    Linker-Vorgang läuft...
    Browse-Informationsdatei wird erstellt...
     
    test.exe - 0 Fehler, 20 Warnung(en)
    Si quelqu'un peut m'eclairer un peu, ce serait sympa.

    Cdt

    rikau2

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Par défaut
    'Alut.

    Google + warning C4786 = FAQ

    Par contre les messages d'erreurs en allemands......................

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    C'est un problème classique avec VC6, il râle quand il rencontre des identifiants trop longs.

    Ce sont des warnings inoffensifs, un coup de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #pragma warning(diable:4786)
    et on n'en parle plus...

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    En vous priant de m'excuser je n'avais pas vu dans la FAQ, une dure journée de travail....

    En allemand oui car je travail en Allemagne.

    Merci encore

    rikau2

  5. #5
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut En fait juste une derniere precision
    La vrai question est pourquoi entre les deux bouts de code, ces warnings apparaissent?

    Est-ce du au fait que dans la deuxieme implementation je sois passe en sous-programme?

    cdt

    rikau2

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    C'est dû au fait que Visual 6 soit vieux, et que les noms de fonction manglés de la STL soient très longs (notamment à cause des templates).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Merci Médinoc. Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec la classe vector de java.util
    Par gtkmm dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 02/02/2010, 13h05
  2. Probleme avec la classe vector
    Par sylvain.cool dans le forum SL & STL
    Réponses: 16
    Dernier message: 09/06/2008, 15h36
  3. problem de vector avec une classe
    Par potterthekiller dans le forum SL & STL
    Réponses: 7
    Dernier message: 19/03/2007, 11h11
  4. Problème avec la classe Vector.
    Par kaelem dans le forum Langage
    Réponses: 10
    Dernier message: 28/12/2006, 09h19
  5. probleme avec la classe vector
    Par elekis dans le forum Langage
    Réponses: 4
    Dernier message: 12/04/2006, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo