//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // template // struct hash> // { // typedef shared_ptr argument_type; // typedef size_t result_type; // size_t operator()(const shared_ptr& p) const; // }; #include #include #if TEST_STD_VER >= 11 #include "poisoned_hash_helper.h" #include "test_macros.h" struct A {}; #endif int main(int, char**) { { int* ptr = new int; std::shared_ptr p(ptr); std::hash > f; std::size_t h = f(p); assert(h == std::hash()(ptr)); } #if TEST_STD_VER >= 11 { test_hash_enabled_for_type>(); test_hash_enabled_for_type>(); } #endif return 0; }