X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Ftestsuite%2F22_locale%2Flocale%2Fglobal_locale_objects%2F1.cc;fp=libstdc%2B%2B-v3%2Ftestsuite%2F22_locale%2Flocale%2Fglobal_locale_objects%2F1.cc;h=5c83afa42c7c17f1e25eba37a058fe9d00b03440;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=0000000000000000000000000000000000000000;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc b/libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc new file mode 100644 index 00000000..5c83afa4 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc @@ -0,0 +1,66 @@ +// 2000-09-13 Benjamin Kosnik + +// Copyright (C) 2000, 2002, 2003, 2009 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 22.1.1.5 locale static members [lib.locale.statics] + +#include // for mbstate_t +#include +#include + +typedef std::codecvt ccodecvt; +class gnu_codecvt: public ccodecvt { }; + +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + string str1, str2; + + // Construct a locale object with the C facet. + const locale loc01 = locale::classic(); + + // Construct a locale object with the specialized facet. + locale loc02(locale::classic(), new gnu_codecvt); + VERIFY ( loc01 != loc02 ); + VERIFY ( !(loc01 == loc02) ); + + // classic + locale loc06("C"); + VERIFY (loc06 == loc01); + str1 = loc06.name(); + VERIFY( str1 == "C" ); + + // global + locale loc03; + VERIFY ( loc03 == loc01); + locale global_orig = locale::global(loc02); + locale loc05; + VERIFY (loc05 != loc03); + VERIFY (loc05 == loc02); + + // Reset global settings. + locale::global(global_orig); +} + +int main () +{ + test01(); + return 0; +}