1f9127593SEric Fiselier //===----------------------------------------------------------------------===// 2f9127593SEric Fiselier // 357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6f9127593SEric Fiselier // 7f9127593SEric Fiselier //===----------------------------------------------------------------------===// 8f9127593SEric Fiselier 9f9127593SEric Fiselier // UNSUPPORTED: c++98, c++03 10f9127593SEric Fiselier 11f9127593SEric Fiselier // <string> 12f9127593SEric Fiselier 13f9127593SEric Fiselier // Test that <string> provides all of the arithmetic, enum, and pointer 14f9127593SEric Fiselier // hash specializations. 15f9127593SEric Fiselier 16f9127593SEric Fiselier #include <string> 17f9127593SEric Fiselier 18f9127593SEric Fiselier #include "poisoned_hash_helper.hpp" 19f9127593SEric Fiselier 20*2df59c50SJF Bastien int main(int, char**) { 21f9127593SEric Fiselier test_library_hash_specializations_available(); 22f9127593SEric Fiselier { 23f9127593SEric Fiselier test_hash_enabled_for_type<std::string>(); 24f9127593SEric Fiselier test_hash_enabled_for_type<std::wstring>(); 257dad0bd6SMarshall Clow #if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L 267dad0bd6SMarshall Clow test_hash_enabled_for_type<std::u8string>(); 277dad0bd6SMarshall Clow #endif 28f9127593SEric Fiselier #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS 29f9127593SEric Fiselier test_hash_enabled_for_type<std::u16string>(); 30f9127593SEric Fiselier test_hash_enabled_for_type<std::u32string>(); 31f9127593SEric Fiselier #endif 32f9127593SEric Fiselier } 33*2df59c50SJF Bastien 34*2df59c50SJF Bastien return 0; 35f9127593SEric Fiselier } 36