std::hash (std::string_view, std::wstring_view, std::u16string_view, std::u32string_view)
From cppreference.com
                    
                                        
                    < cpp | string | basic string view
                    
                                                            
                    |   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)  |