default.pass.cpp revision 83e2c4d877fe2d7793868b1c6a5d9525a7c4d431
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)//===----------------------------------------------------------------------===//
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// <streambuf>
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// template <class charT, class traits = char_traits<charT> >
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// class basic_streambuf;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// basic_streambuf();
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <streambuf>
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <cassert>
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "platform_support.h" // locale name macros
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <class CharT>
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct test
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : public std::basic_streambuf<CharT>
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test()
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(this->eback() == 0);
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(this->gptr() == 0);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(this->egptr() == 0);
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(this->pbase() == 0);
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(this->pptr() == 0);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(this->epptr() == 0);
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main()
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        test<char> t;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(t.getloc().name() == "C");
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        test<wchar_t> t;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(t.getloc().name() == "C");
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    std::locale::global(std::locale(LOCALE_en_US_UTF_8));
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        test<char> t;
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(t.getloc().name() == LOCALE_en_US_UTF_8);
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        test<wchar_t> t;
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(t.getloc().name() == LOCALE_en_US_UTF_8);
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)