int main() { typedef std::codecvt_utf8<wchar_t> Codecvt; typedef std::wstring_convert<Codecvt> Myconv; #if TEST_STD_VER > 11 static_assert(!std::is_convertible<std::string, Myconv>::value, ""); static_assert( std::is_constructible<Myconv, std::string>::value, ""); #endif #ifndef TEST_HAS_NO_EXCEPTIONS { Myconv myconv; try { myconv.to_bytes(L"\xDA83"); assert(false); } catch (const std::range_error&) { } try { myconv.from_bytes('\xA5'); assert(false); } catch (const std::range_error&) { } } #endif { Myconv myconv("byte error"); std::string bs = myconv.to_bytes(L"\xDA83"); assert(bs == "byte error"); #ifndef TEST_HAS_NO_EXCEPTIONS try { myconv.from_bytes('\xA5'); assert(false); } catch (const std::range_error&) { } #endif } { Myconv myconv("byte error", L"wide error"); std::string bs = myconv.to_bytes(L"\xDA83"); assert(bs == "byte error"); std::wstring ws = myconv.from_bytes('\xA5'); assert(ws == L"wide error"); } }
int main() { { typedef std::codecvt_utf8<wchar_t> Codecvt; typedef std::wstring_convert<Codecvt> Myconv; Myconv myconv; assert(myconv.converted() == 0); } { typedef std::codecvt_utf8<wchar_t> Codecvt; typedef std::wstring_convert<Codecvt> Myconv; Myconv myconv(new Codecvt); assert(myconv.converted() == 0); } }