Home | History | Annotate | Download | only in locale.collate.members
      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> class collate;
     13 
     14 // int compare(const charT* low1, const charT* high1,
     15 //             const charT* low2, const charT* high2) const;
     16 
     17 #include <locale>
     18 #include <cassert>
     19 
     20 int main()
     21 {
     22     std::locale l = std::locale::classic();
     23     {
     24         const char ia[] = "1234";
     25         const unsigned sa = sizeof(ia)/sizeof(ia[0]);
     26         const char ib[] = "123";
     27         const std::collate<char>& f = std::use_facet<std::collate<char> >(l);
     28         assert(f.compare(ia, ia+sa, ib, ib+2) == 1);
     29         assert(f.compare(ib, ib+2, ia, ia+sa) == -1);
     30         assert(f.compare(ia, ia+sa, ib, ib+3) == 1);
     31         assert(f.compare(ib, ib+3, ia, ia+sa) == -1);
     32         assert(f.compare(ia, ia+sa, ib+1, ib+3) == -1);
     33         assert(f.compare(ib+1, ib+3, ia, ia+sa) == 1);
     34         assert(f.compare(ia, ia+3, ib, ib+3) == 0);
     35     }
     36     {
     37         const wchar_t ia[] = L"1234";
     38         const unsigned sa = sizeof(ia)/sizeof(ia[0]);
     39         const wchar_t ib[] = L"123";
     40         const std::collate<wchar_t>& f = std::use_facet<std::collate<wchar_t> >(l);
     41         assert(f.compare(ia, ia+sa, ib, ib+2) == 1);
     42         assert(f.compare(ib, ib+2, ia, ia+sa) == -1);
     43         assert(f.compare(ia, ia+sa, ib, ib+3) == 1);
     44         assert(f.compare(ib, ib+3, ia, ia+sa) == -1);
     45         assert(f.compare(ia, ia+sa, ib+1, ib+3) == -1);
     46         assert(f.compare(ib+1, ib+3, ia, ia+sa) == 1);
     47         assert(f.compare(ia, ia+3, ib, ib+3) == 0);
     48     }
     49 }
     50