thousands_sep.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//===----------------------------------------------------------------------===// 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// The LLVM Compiler Infrastructure 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// This file is distributed under the University of Illinois Open Source 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// License. See LICENSE.TXT for details. 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry//===----------------------------------------------------------------------===// 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// <locale> 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// class moneypunct_byname<charT, International> 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry// charT thousands_sep() const; 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <locale> 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <limits> 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <cassert> 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fnf 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : public std::moneypunct_byname<char, false> 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry explicit Fnf(const std::string& nm, std::size_t refs = 0) 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : std::moneypunct_byname<char, false>(nm, refs) {} 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fnt 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : public std::moneypunct_byname<char, true> 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry explicit Fnt(const std::string& nm, std::size_t refs = 0) 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : std::moneypunct_byname<char, true>(nm, refs) {} 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fwf 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : public std::moneypunct_byname<wchar_t, false> 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry explicit Fwf(const std::string& nm, std::size_t refs = 0) 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : std::moneypunct_byname<wchar_t, false>(nm, refs) {} 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Fwt 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : public std::moneypunct_byname<wchar_t, true> 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry explicit Fwt(const std::string& nm, std::size_t refs = 0) 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : std::moneypunct_byname<wchar_t, true>(nm, refs) {} 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyryint main() 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnf f("C", 1); 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == std::numeric_limits<char>::max()); 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnt f("C", 1); 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == std::numeric_limits<char>::max()); 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwf f("C", 1); 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == std::numeric_limits<wchar_t>::max()); 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwt f("C", 1); 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == std::numeric_limits<wchar_t>::max()); 693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnf f("en_US", 1); 733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ','); 743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnt f("en_US", 1); 773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ','); 783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwf f("en_US", 1); 813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L','); 823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwt f("en_US", 1); 853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L','); 863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnf f("fr_FR", 1); 903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ' '); 913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnt f("fr_FR", 1); 943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ' '); 953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwf f("fr_FR", 1); 983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L' '); 993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwt f("fr_FR", 1); 1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L' '); 1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnf f("ru_RU", 1); 1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ' '); 1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnt f("ru_RU", 1); 1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ' '); 1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwf f("ru_RU", 1); 1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L' '); 1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwt f("ru_RU", 1); 1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L' '); 1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnf f("zh_CN", 1); 1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ','); 1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fnt f("zh_CN", 1); 1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == ','); 1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwf f("zh_CN", 1); 1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L','); 1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Fwt f("zh_CN", 1); 1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry assert(f.thousands_sep() == L','); 1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} 1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry