Komischer fehler



  • double Averange = 65.2;
    std::ostringstream os;
    os << Averange;
    std::wstring str = os.str();
    
    cannot convert from 'std::basic_string<_Elem,_Traits,_Ax>' to 'std::basic_string<_Elem,_Traits,_Ax>'
    

    ich vermute das liegt daran das os.str(); == char und wstring == wchar_t

    aber ich moechte weiterhin alles in unicode machen - daher die frage,

    wie double nach wstring ?



  • ich idiot

    double Averange = 65.2;
    std::wstringstream os;
    os << Averange;
    std::wstring str = os.str();
    

    das geht doch #gg



  • Auch wenn du es schon selber herausgefunden hast, eine Erklärung 😉

    Die Stream- und String-Klassen der STL hast du praktisch in dreifacher Ausführung: basic_xxx<char_type,...> (Template-Klasse für beliebige Zeichentypen), xxx (=basic_xx<char>) und wxxx (=basic_xxx<wchar_t>). Und wenn du mit UNICODE arbeiten willst, solltest du durchgängig die w... Versionen verwenden.



  • CStoll schrieb:

    Auch wenn du es schon selber herausgefunden hast, eine Erklärung 😉

    Die Stream- und String-Klassen der STL hast du praktisch in dreifacher Ausführung: basic_xxx<char_type,...> (Template-Klasse für beliebige Zeichentypen), xxx (=basic_xx<char>) und wxxx (=basic_xxx<wchar_t>). Und wenn du mit UNICODE arbeiten willst, solltest du durchgängig die w... Versionen verwenden.

    Hat denn eigentlich Mr Evil die Fehlermeldung falsch abgetippt ?

    cannot convert from 'std::basic_string<_Elem,_Traits,_Ax>' to 'std::basic_string<_Elem,_Traits,_Ax>'
    

    Denn so spontan fällt mir kein Grund ein, warum der Compiler std::basic_string<_Elem,_Traits,_Ax> nicht in sich selbst konvertieren können sollte....

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Hat denn eigentlich Mr Evil die Fehlermeldung falsch abgetippt ?

    Nicht falsch, nur unvollständig. Die Templateparameter sind unterschiedlich.


Anmelden zum Antworten