1 //===----------------------------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef NOTCONSTRUCTIBLE_H 11 #define NOTCONSTRUCTIBLE_H 12 13 #include <functional> 14 15 class NotConstructible 16 { 17 NotConstructible(const NotConstructible&); 18 NotConstructible& operator=(const NotConstructible&); 19 public: 20 }; 21 22 inline 23 bool 24 operator==(const NotConstructible&, const NotConstructible&) 25 {return true;} 26 27 namespace std 28 { 29 30 template <> 31 struct hash<NotConstructible> 32 { 33 typedef NotConstructible argument_type; 34 typedef std::size_t result_type; 35 36 std::size_t operator()(const NotConstructible&) const {return 0;} 37 }; 38 39 } 40 41 #endif // NOTCONSTRUCTIBLE_H 42