Anonymní profil fdsa – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil fdsa – Programujte.comAnonymní profil fdsa – Programujte.com

 

Příspěvky odeslané z IP adresy 90.64.63.–

fdsa
C / C++ › string do wstring
19. 11. 2014   #196234

Čaute,

potreboval by som skonvertovať multi-byte string (char) na wstring (wchar_t).

Program vyvíjam na Linuxe, kompilátor používam g++ 4.9.1, štandard c++1y.

Chcel som použiť std::wstring_convert, no na g++ mi hlási že header <codecvt> neexistuje, čo mi potvrdila aj g++ dokumentácia (codecvt ešte stále nie je implementované, v clang-u je). Na http://en.cppreference.com/w/cpp/locale/wstring_convert sa píše že wstring_convert by sa mal nachádzať v <locale> ale tam tiež nie je.

Ako dalšiu možnosť ma napadlo pouziť mbstowcs ale rád by som prenechal "správu" výstupneho wchar_t poľa vo std::wstring. Je teda nejakým spôsobom možné nastaviť interný pointer std::wstring na výstup z mbstowcs bez toho, aby sa tam muselo celé pole znova kopírovať?

Ešte tretia možnosť: std::wstringstream ale tu nastáva taktiež kopírovanie pri volaní metódy str() (ak sa nemýlim).

Takže aby som to zhrnul, rád by som našiel nejaký čo najmenej bolestivý spôsob prevodu string-u do wstring-u resp. uloženie wchar_t* do wstring bez toho aby som ho musel kopírovať (tých stringov môže byť dosť veľa a zbytočná práca s pamäťou na výkone nepridá...)

Ďakujem

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý