Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/string/basic string view/hash"

From cppreference.com
(these specializations are (since C++17) themselves)
(char8_t)
Line 5: Line 5:
 
{{dcl | since=c++17 |
 
{{dcl | since=c++17 |
 
template<> struct hash<std::string_view>;
 
template<> struct hash<std::string_view>;
 +
}}
 +
{{dcl | since=c++17 |
 
template<> struct hash<std::wstring_view>;
 
template<> struct hash<std::wstring_view>;
 +
}}
 +
{{dcl | since=c++20 |
 +
template<> struct hash<std::u8string_view>;
 +
}}
 +
{{dcl | since=c++17 |
 
template<> struct hash<std::u16string_view>;
 
template<> struct hash<std::u16string_view>;
 +
}}
 +
{{dcl | since=c++17 |
 
template<> struct hash<std::u32string_view>;
 
template<> struct hash<std::u32string_view>;
 
}}
 
}}

Revision as of 08:50, 12 November 2018

 
 
 
 
Defined in header <string_view>
template<> struct hash<std::string_view>;
(since C++17)
template<> struct hash<std::wstring_view>;
(since C++17)
template<> struct hash<std::u8string_view>;
(since C++20)
template<> struct hash<std::u16string_view>;
(since C++17)
template<> struct hash<std::u32string_view>;
(since C++17)

Template specializations of std::hash for the various view classes for hashing views.

These hashes equal the hashes of corresponding std::basic_string classes: If S is one of the standard basic_string types, SV is the corresponding string view type, and s is an object of type S, then std::hash<S>()(s) == std::hash<SV>()(SV(s)).

See also

(C++11)
hash function object
(class template) [edit]