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// class moneypunct_byname<charT, International> 13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// charT thousands_sep() const; 15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <locale> 17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <limits> 18b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cassert> 19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include "platform_support.h" // locale name macros 21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerclass Fnf 23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : public std::moneypunct_byname<char, false> 24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerpublic: 26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner explicit Fnf(const std::string& nm, std::size_t refs = 0) 27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : std::moneypunct_byname<char, false>(nm, refs) {} 28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerclass Fnt 31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : public std::moneypunct_byname<char, true> 32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerpublic: 34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner explicit Fnt(const std::string& nm, std::size_t refs = 0) 35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : std::moneypunct_byname<char, true>(nm, refs) {} 36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerclass Fwf 39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : public std::moneypunct_byname<wchar_t, false> 40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerpublic: 42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner explicit Fwf(const std::string& nm, std::size_t refs = 0) 43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : std::moneypunct_byname<wchar_t, false>(nm, refs) {} 44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerclass Fwt 47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : public std::moneypunct_byname<wchar_t, true> 48b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 49b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerpublic: 50b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner explicit Fwt(const std::string& nm, std::size_t refs = 0) 51b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : std::moneypunct_byname<wchar_t, true>(nm, refs) {} 52b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 53b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 54b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main() 55b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 56b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 57b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnf f("C", 1); 58b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == std::numeric_limits<char>::max()); 59b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 60b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 61b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnt f("C", 1); 62b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == std::numeric_limits<char>::max()); 63b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 64b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 65b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwf f("C", 1); 66b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == std::numeric_limits<wchar_t>::max()); 67b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 68b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 69b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwt f("C", 1); 70b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == std::numeric_limits<wchar_t>::max()); 71b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 72b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 73b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 74b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnf f(LOCALE_en_US_UTF_8, 1); 75b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ','); 76b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 77b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 78b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnt f(LOCALE_en_US_UTF_8, 1); 79b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ','); 80b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 81b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 82b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwf f(LOCALE_en_US_UTF_8, 1); 83b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L','); 84b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 85b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 86b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwt f(LOCALE_en_US_UTF_8, 1); 87b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L','); 88b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 89b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 90b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 91b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnf f(LOCALE_fr_FR_UTF_8, 1); 92b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ' '); 93b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 94b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 95b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnt f(LOCALE_fr_FR_UTF_8, 1); 96b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ' '); 97b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 98b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 99b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwf f(LOCALE_fr_FR_UTF_8, 1); 100b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L' '); 101b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 102b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 103b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwt f(LOCALE_fr_FR_UTF_8, 1); 104b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L' '); 105b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 106b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 107b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 108b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnf f(LOCALE_ru_RU_UTF_8, 1); 109b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ' '); 110b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 111b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 112b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnt f(LOCALE_ru_RU_UTF_8, 1); 113b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ' '); 114b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 115b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 116b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwf f(LOCALE_ru_RU_UTF_8, 1); 117b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L' '); 118b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 119b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 120b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwt f(LOCALE_ru_RU_UTF_8, 1); 121b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L' '); 122b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 123b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 124b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 125b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnf f(LOCALE_zh_CN_UTF_8, 1); 126b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ','); 127b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 128b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 129b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fnt f(LOCALE_zh_CN_UTF_8, 1); 130b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == ','); 131b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 132b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 133b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwf f(LOCALE_zh_CN_UTF_8, 1); 134b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L','); 135b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 136b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 137b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner Fwt f(LOCALE_zh_CN_UTF_8, 1); 138b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner assert(f.thousands_sep() == L','); 139b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 140b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner} 141