1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef NOTCONSTRUCTIBLE_H 10 #define NOTCONSTRUCTIBLE_H 11 12 #include <functional> 13 14 class NotConstructible 15 { 16 NotConstructible(const NotConstructible&); 17 NotConstructible& operator=(const NotConstructible&); 18 public: 19 }; 20 21 inline 22 bool 23 operator==(const NotConstructible&, const NotConstructible&) 24 {return true;} 25 26 namespace std 27 { 28 29 template <> 30 struct hash<NotConstructible> 31 { 32 typedef NotConstructible argument_type; 33 typedef std::size_t result_type; 34 35 std::size_t operator()(const NotConstructible&) const {return 0;} 36 }; 37 38 } 39 40 #endif // NOTCONSTRUCTIBLE_H 41