1f9127593SEric Fiselier //===----------------------------------------------------------------------===// 2f9127593SEric Fiselier // 3f9127593SEric Fiselier // The LLVM Compiler Infrastructure 4f9127593SEric Fiselier // 5f9127593SEric Fiselier // This file is dual licensed under the MIT and the University of Illinois Open 6f9127593SEric Fiselier // Source Licenses. See LICENSE.TXT for details. 7f9127593SEric Fiselier // 8f9127593SEric Fiselier //===----------------------------------------------------------------------===// 9f9127593SEric Fiselier 10f9127593SEric Fiselier // UNSUPPORTED: c++98, c++03 11f9127593SEric Fiselier 12f9127593SEric Fiselier // <string> 13f9127593SEric Fiselier 14f9127593SEric Fiselier // Test that <string> provides all of the arithmetic, enum, and pointer 15f9127593SEric Fiselier // hash specializations. 16f9127593SEric Fiselier 17f9127593SEric Fiselier #include <string> 18f9127593SEric Fiselier 19f9127593SEric Fiselier #include "poisoned_hash_helper.hpp" 20f9127593SEric Fiselier 21f9127593SEric Fiselier int main() { 22f9127593SEric Fiselier test_library_hash_specializations_available(); 23f9127593SEric Fiselier { 24f9127593SEric Fiselier test_hash_enabled_for_type<std::string>(); 25f9127593SEric Fiselier test_hash_enabled_for_type<std::wstring>(); 26*7dad0bd6SMarshall Clow #if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L 27*7dad0bd6SMarshall Clow test_hash_enabled_for_type<std::u8string>(); 28*7dad0bd6SMarshall Clow #endif 29f9127593SEric Fiselier #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS 30f9127593SEric Fiselier test_hash_enabled_for_type<std::u16string>(); 31f9127593SEric Fiselier test_hash_enabled_for_type<std::u32string>(); 32f9127593SEric Fiselier #endif 33f9127593SEric Fiselier } 34f9127593SEric Fiselier } 35