1b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 2b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 3b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// The LLVM Compiler Infrastructure 4b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 5b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// This file is dual licensed under the MIT and the University of Illinois Open 6b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Source Licenses. See LICENSE.TXT for details. 7b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 8b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 9b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 10b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// <codecvt> 11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 12b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// template <class Elem, unsigned long Maxcode = 0x10ffff, 13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// codecvt_mode Mode = (codecvt_mode)0> 14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// class codecvt_utf8 15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// : public codecvt<Elem, char, mbstate_t> 16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// { 17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// // unspecified 18b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// }; 19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// result 21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// unshift(stateT& state, 22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// externT* to, externT* to_end, externT*& to_next) const; 23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <codecvt> 25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cassert> 26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main() 28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::codecvt_utf8<wchar_t> C; 31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner C c; 32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char n[4] = {0}; 33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::mbstate_t m; 34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char* np = nullptr; 35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::codecvt_base::result r = c.unshift(m, n, n+4, np); 36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(r == std::codecvt_base::noconv); 37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::codecvt_utf8<char16_t> C; 40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner C c; 41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char n[4] = {0}; 42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::mbstate_t m; 43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char* np = nullptr; 44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::codecvt_base::result r = c.unshift(m, n, n+4, np); 45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(r == std::codecvt_base::noconv); 46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 48b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::codecvt_utf8<char32_t> C; 49b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner C c; 50b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char n[4] = {0}; 51b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::mbstate_t m; 52b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner char* np = nullptr; 53b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::codecvt_base::result r = c.unshift(m, n, n+4, np); 54b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(r == std::codecvt_base::noconv); 55b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 56b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner} 57