J'utilise la bibliothèque Boost pour implémenter mon application. Tous les caractères chaîne dans le modèle de données de mon application sont des caractères larges (type wchar_t). Mais dans la bibliothèque boost, certaines classes ne transmettent que le caractère étroit (type char), c'est-à-dire "address boost::asio::ip::address::from_string(const char* str)
". J'ai donc besoin de faire la conversion entre std :: string et std :: wstring quand on appelle les fonctions boost.wstring string converter dans Boost
- Y at-il un problème de performance dû aux conversions de chaîne?
- Dans là le convertisseur dans Boost, qui fait la conversion entre std :: wstring et std :: string avec de bonnes performances?
MISE À JOUR
En ce qui concerne la fonction de conversion. Je trouve le code ci-dessous fonctionne.
std::wstring wstr(L"Hello World");
const std::string nstr(wstr.begin(), wstr.end());
const std::wstring wstr2(nstr.begin(), nstr.end());
J'espère que vous n'avez pas de caractères non-ascii dans vos chaînes ... – Eugene