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