Erreur std::operator

Résolu
Bonjour,
je fais un code sur visual c++ et j'obient 180 erreur!!!!!!!!!!!!!!! du genre:
pour le code:

std::string str;
std::string nom="";
std::string msg = nom + std::string(" message d'erreurX ") + str;

que pour cette ligne j'ai plus que 20 message d'erreur du genre:
1>z:\....................\abc.h(670) : error C2784: 'std::_Vb_iterator<_Sizet,_Difft,_MycontTy> std::operator +(_Difft,std::_Vb_iterator<_Sizet,_Difft,_MycontTy>)' : impossible de déduire l'argument modèle pour 'std::_Vb_iterator<_Sizet,_Difft,_MycontTy>' à partir de 'std::basic_string<_Elem,_Traits,_Ax>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> c:\program files\microsoft visual studio 9.0\vc\include\vector(1854) : voir la déclaration de 'std::operator +'
1>z:\........................\abc.h(670) : error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' : impossible de déduire l'argument modèle pour 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' à partir de 'std::basic_string<_Elem,_Traits,_Ax>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> c:\program files\microsoft visual studio 9.0\vc\include\xstring(300) : voir la déclaration de 'std::operator +'

j'espere que quelqu'un a une idée de comment corriger cette erreur
Configuration: Windows Vista
Internet Explorer 7.0

5 réponses

  1. Contributeur
    Tout de même, j'ai été très étonner de ce que tu as.
    J'ai donc copier coller ce que tu as écris, en incluant l'en tête <string>.
    Et ça compile parfaitement. Donc soit le problème viens de plus haut, soit il faut changer de compilateur ou d'en tête.
    1. Contributeur
      Ce qui est important, ce n'est pas l'erreur à ce niveau là, mais la première erreur retournée par le compilateur.
      Car la première erreur peut causer des mauvaises interprétation des lignes suivantes.
      1. en faite c'est la première erreur dans mon code, ce qui suit c'est du genre pareil
        1. Contributeur
          Ha merde...
          Parceque je ne voi pas ce qu'il y a de faux...
          essai :
          std::string msg ( nom + std::string(" message d'erreurX ") + str);// sans egal, ce n'est pas une erreur
          std::string msg = nom + str;
          std::string msg = std::string(" message d'erreurX ");
          std::string msg = nom+std::string(" message d'erreurX ");
          Ainsi, on verra ce qui ne lui plait vraiment pas.
          1. malheureusement ça ne marche pas, mais c pas grave, j'aurais besoin de presque tout changer dans le programme.