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// <locale> 11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 12b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// template <class CharT> 13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// class ctype_byname 14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// : public ctype<CharT> 15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// { 16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// public: 17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// explicit ctype_byname(const char*, size_t = 0); 18b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// explicit ctype_byname(const string&, size_t = 0); 19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// protected: 21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// ~ctype_byname(); 22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// }; 23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <locale> 25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <type_traits> 26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cassert> 27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include "platform_support.h" // locale name macros 29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main() 31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::locale l(LOCALE_en_US_UTF_8); 34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(std::has_facet<std::ctype_byname<char> >(l)); 36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(&std::use_facet<std::ctype<char> >(l) 37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner == &std::use_facet<std::ctype_byname<char> >(l)); 38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(std::has_facet<std::ctype_byname<wchar_t> >(l)); 41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(&std::use_facet<std::ctype<wchar_t> >(l) 42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner == &std::use_facet<std::ctype_byname<wchar_t> >(l)); 43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::locale l(""); 47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 48b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(std::has_facet<std::ctype_byname<char> >(l)); 49b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(&std::use_facet<std::ctype<char> >(l) 50b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner == &std::use_facet<std::ctype_byname<char> >(l)); 51b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 52b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 53b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(std::has_facet<std::ctype_byname<wchar_t> >(l)); 54b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(&std::use_facet<std::ctype<wchar_t> >(l) 55b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner == &std::use_facet<std::ctype_byname<wchar_t> >(l)); 56b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 57b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 58b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 59b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner std::locale l("C"); 60b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 61b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(std::has_facet<std::ctype_byname<char> >(l)); 62b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(&std::use_facet<std::ctype<char> >(l) 63b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner == &std::use_facet<std::ctype_byname<char> >(l)); 64b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 65b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 66b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(std::has_facet<std::ctype_byname<wchar_t> >(l)); 67b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(&std::use_facet<std::ctype<wchar_t> >(l) 68b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner == &std::use_facet<std::ctype_byname<wchar_t> >(l)); 69b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 70b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 71b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner} 72