Č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