Home | History | Annotate | Download | only in locale.ctype.byname
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <locale>
     11 
     12 // template <class CharT>
     13 // class ctype_byname
     14 //     : public ctype<CharT>
     15 // {
     16 // public:
     17 //     explicit ctype_byname(const char*, size_t = 0);
     18 //     explicit ctype_byname(const string&, size_t = 0);
     19 //
     20 // protected:
     21 //     ~ctype_byname();
     22 // };
     23 
     24 #include <locale>
     25 #include <type_traits>
     26 #include <cassert>
     27 
     28 #include "platform_support.h" // locale name macros
     29 
     30 int main()
     31 {
     32     {
     33         std::locale l(LOCALE_en_US_UTF_8);
     34         {
     35             assert(std::has_facet<std::ctype_byname<char> >(l));
     36             assert(&std::use_facet<std::ctype<char> >(l)
     37                 == &std::use_facet<std::ctype_byname<char> >(l));
     38         }
     39         {
     40             assert(std::has_facet<std::ctype_byname<wchar_t> >(l));
     41             assert(&std::use_facet<std::ctype<wchar_t> >(l)
     42                 == &std::use_facet<std::ctype_byname<wchar_t> >(l));
     43         }
     44     }
     45     {
     46         std::locale l("");
     47         {
     48             assert(std::has_facet<std::ctype_byname<char> >(l));
     49             assert(&std::use_facet<std::ctype<char> >(l)
     50                 == &std::use_facet<std::ctype_byname<char> >(l));
     51         }
     52         {
     53             assert(std::has_facet<std::ctype_byname<wchar_t> >(l));
     54             assert(&std::use_facet<std::ctype<wchar_t> >(l)
     55                 == &std::use_facet<std::ctype_byname<wchar_t> >(l));
     56         }
     57     }
     58     {
     59         std::locale l("C");
     60         {
     61             assert(std::has_facet<std::ctype_byname<char> >(l));
     62             assert(&std::use_facet<std::ctype<char> >(l)
     63                 == &std::use_facet<std::ctype_byname<char> >(l));
     64         }
     65         {
     66             assert(std::has_facet<std::ctype_byname<wchar_t> >(l));
     67             assert(&std::use_facet<std::ctype<wchar_t> >(l)
     68                 == &std::use_facet<std::ctype_byname<wchar_t> >(l));
     69         }
     70     }
     71 }
     72