187d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//===----------------------------------------------------------------------===//
287d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//
387d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//                     The LLVM Compiler Infrastructure
487d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//
5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
787d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//
887d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//===----------------------------------------------------------------------===//
987d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant
1087d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant// <codecvt>
1187d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant
1287d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant// template <class Elem, unsigned long Maxcode = 0x10ffff,
1387d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//           codecvt_mode Mode = (codecvt_mode)0>
1487d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant// class codecvt_utf16
1587d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//     : public codecvt<Elem, char, mbstate_t>
1687d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant// {
1787d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant//     // unspecified
1887d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant// };
1987d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant
2087d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant// int encoding() const throw();
2187d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant
2287d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant#include <codecvt>
2387d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant#include <cassert>
2487d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant
2587d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnantint main()
2687d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant{
2787d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant    {
2887d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        typedef std::codecvt_utf16<wchar_t> C;
2987d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        C c;
3087d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        int r = c.encoding();
3187d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        assert(r == 0);
3287d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant    }
3387d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant    {
3487d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        typedef std::codecvt_utf16<char16_t> C;
3587d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        C c;
3687d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        int r = c.encoding();
3787d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        assert(r == 0);
3887d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant    }
3987d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant    {
4087d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        typedef std::codecvt_utf16<char32_t> C;
4187d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        C c;
4287d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        int r = c.encoding();
4387d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant        assert(r == 0);
4487d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant    }
4587d1a8a4d81892ccfaf1319d056880e89a17528eHoward Hinnant}
46