Я использовал тип char16_t с codecvt в следующем коде в MSVS2015:
std::u16string utf8_to_tf16(const std::string& str)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert;
return convert.from_bytes(str);
}
std::string utf16_to_utf8(const std::u16string& str)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert;
return convert.to_bytes(str);
}
Он успешно скомпилирован, но во время компоновки появляется ошибка:
ошибка LNK2001: неразрешенный внешний символ «__declspec (dllimport) public: статический класс std :: locale :: id std :: codecvt :: id» (__imp_? id @? $ codecvt @ _SDU_Mbstatet @@@ std @@ 2V0locale @ 2 @ A)
Как исправить эту ошибку?
Задача ещё не решена.
Других решений пока нет …