locales.pass.cpp revision 83e2c4d877fe2d7793868b1c6a5d9525a7c4d431
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//===----------------------------------------------------------------------===// 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// The LLVM Compiler Infrastructure 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci//===----------------------------------------------------------------------===// 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// <streambuf> 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// template <class charT, class traits = char_traits<charT> > 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// class basic_streambuf; 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// locale pubimbue(const locale& loc); 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// locale getloc() const; 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <streambuf> 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <cassert> 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "platform_support.h" // locale name macros 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccitemplate <class CharT> 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistruct test 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci : public std::basic_streambuf<CharT> 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci{ 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci test() {} 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void imbue(const std::locale&) 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci { 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert(this->getloc().name() == LOCALE_en_US_UTF_8); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)int main() 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles){ 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci { 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci test<char> t; 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert(t.getloc().name() == "C"); 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::locale::global(std::locale(LOCALE_en_US_UTF_8)); 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci { 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci test<char> t; 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert(t.getloc().name() == LOCALE_en_US_UTF_8); 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert(t.pubimbue(std::locale(LOCALE_fr_FR_UTF_8)).name() == "en_US.UTF-8"); 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert(t.getloc().name() == LOCALE_fr_FR_UTF_8); 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci