This code compiled OK under VS2013:
std::string Unicode::utf16_to_utf8(std::u16string utf16_string)
{
std::wstring_convert
Another possible workaround is to use default second template parameter (wchar_t) for wstring_convert. It is working for "MS Visual Studio 2015 update 3". Please note that it is not platform-independent solution. Windows only.
std::string utf16_to_utf8(std::u16string u16_string)
{
std::wstring wide_string(u16_string.begin(), u16_string.end());
std::wstring_convert> convert;
return convert.to_bytes(wide_string);
}