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 template <> 27 struct std::hash<NotConstructible> { 28 typedef NotConstructible argument_type; 29 typedef std::size_t result_type; 30 31 std::size_t operator()(const NotConstructible&) const { return 0; } 32 }; 33 34 #endif // NOTCONSTRUCTIBLE_H 35