os/ossrv/genericopenlibs/cppstdlib/stl/src/collate.cpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 /*
     2  * Copyright (c) 1999
     3  * Silicon Graphics Computer Systems, Inc.
     4  *
     5  * Copyright (c) 1999
     6  * Boris Fomitchev
     7  *
     8  * This material is provided "as is", with absolutely no warranty expressed
     9  * or implied. Any use is at your own risk.
    10  *
    11  * Permission to use or copy this software for any purpose is hereby granted
    12  * without fee, provided the above notices are retained on all copies.
    13  * Permission to modify the code and to distribute modified code is granted,
    14  * provided the above notices are retained, and a notice that the code was
    15  * modified is included with the above copyright notice.
    16  *
    17  */
    18 #include "stlport_prefix.h"
    19 
    20 #include <locale>
    21 
    22 _STLP_BEGIN_NAMESPACE
    23 
    24 // collate<char>
    25 
    26 _STLP_DECLSPEC collate<char>::~collate() {}
    27 
    28 _STLP_DECLSPEC int collate<char>::do_compare(const char* low1, const char* high1,
    29                               const char* low2, const char* high2) const
    30 { return _STLP_PRIV __lexicographical_compare_3way(low1, high1, low2, high2); }
    31 
    32 _STLP_DECLSPEC string collate<char>::do_transform(const char* low, const char* high) const
    33 { return string(low, high); }
    34 
    35 _STLP_DECLSPEC long collate<char>::do_hash(const char* low, const char* high) const {
    36   unsigned long result = 0;
    37   for ( ; low < high; ++low)
    38     result = 5 * result + *low;
    39   return result;
    40 }
    41 
    42 #if !defined (_STLP_NO_WCHAR_T)
    43 // collate<wchar_t>
    44 
    45 _STLP_DECLSPEC collate<wchar_t>::~collate() {}
    46 
    47 _STLP_DECLSPEC int
    48 collate<wchar_t>::do_compare(const wchar_t* low1, const wchar_t* high1,
    49                              const wchar_t* low2, const wchar_t* high2) const
    50 { return _STLP_PRIV __lexicographical_compare_3way(low1, high1, low2, high2); }
    51 
    52 _STLP_DECLSPEC wstring collate<wchar_t>::do_transform(const wchar_t* low, const wchar_t* high) const
    53 { return wstring(low, high); }
    54 
    55 _STLP_DECLSPEC long collate<wchar_t>::do_hash(const wchar_t* low, const wchar_t* high) const {
    56   unsigned long result = 0;
    57   for ( ; low < high; ++low)
    58     result = 5 * result + *low;
    59   return result;
    60 }
    61 #endif
    62 
    63 _STLP_END_NAMESPACE
    64 
    65 
    66 // Local Variables:
    67 // mode:C++
    68 // End:
    69