Ich benutze die Boost-Bibliothek, um meine Anwendung zu implementieren. Alle Zeichenfolgezeichen im Datenmodell meiner Anwendung sind breite Zeichen (wchar_t type). In der Boost-Bibliothek übergeben jedoch einige Klassen nur das schmale Zeichen (Zeichenart), d. H. "address boost::asio::ip::address::from_string(const char* str)
". Also muss ich die Umwandlung zwischen std :: string und std :: wstring vornehmen, wenn die Boost-Funktionen aufgerufen werden.W String String Konverter in Boost
- Gibt es Leistungsproblem aufgrund der Zeichenfolgekonvertierungen?
- In dort der Konverter in Boost, der die Konvertierung zwischen Std :: Wstring und Std :: String mit guter Leistung macht?
UPDATE
In Bezug auf die Wandlerfunktion. Ich finde den Code unten funktioniert.
std::wstring wstr(L"Hello World");
const std::string nstr(wstr.begin(), wstr.end());
const std::wstring wstr2(nstr.begin(), nstr.end());
Hoffentlich haben Sie keine Nicht-ASCII-Zeichen in Ihren breiten Strings ... – Eugene