-
-
-namespace __gnu_cxx {
-
- template< typename CharT, typename Traits, typename Alloc >
- struct hash< std::basic_string<CharT, Traits, Alloc> > {
- size_t operator()(const std::basic_string<CharT, Traits, Alloc>& s) const {
-
- const std::collate<CharT>& c = std::use_facet< std::collate<CharT> >(std::locale());
-
- return c.hash(s.c_str(), s.c_str() + s.size());
-
-}
-
- };
-
- template< typename CharT, typename Traits, typename Alloc >
- struct hash< const std::basic_string<CharT, Traits, Alloc> > { //yes you need this version aswell!
-
-size_t operator()(const std::basic_string<CharT, Traits, Alloc>& s) const {
-
- const std::collate<CharT>& c = std::use_facet< std::collate<CharT> >(std::locale());
-
- return c.hash(s.c_str(), s.c_str() + s.size());
- }
-
- };
-};
-