00001 #ifndef DVPCOLLATE_H_INCLUDED 00002 #define DVPCOLLATE_H_INCLUDED 00003 00016 #include <locale> 00017 #include <string> 00018 00020 00024 template<typename _CharT> 00025 class DVPCollate : public std::collate<_CharT> 00026 { 00027 typedef std::basic_string<_CharT> string_t; 00028 00029 protected: 00031 virtual int do_compare( 00032 const _CharT* __lo1, 00033 const _CharT* __hi1, 00034 const _CharT* __lo2, 00035 const _CharT* __hi2) const; 00036 00038 virtual std::basic_string<_CharT> do_transform( 00039 const _CharT* __lo, 00040 const _CharT* __hi) const; 00041 00043 virtual long do_hash( 00044 const _CharT* __lo, 00045 const _CharT* __hi) const; 00046 }; 00047 00048 #endif // DVPCOLLATE_H_INCLUDED