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