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
15class NotConstructible
16{
17    NotConstructible(const NotConstructible&);
18    NotConstructible& operator=(const NotConstructible&);
19public:
20};
21
22inline
23bool
24operator==(const NotConstructible&, const NotConstructible&)
25{return true;}
26
27namespace std
28{
29
30template <>
31struct hash<NotConstructible>
32    : public std::unary_function<NotConstructible, std::size_t>
33{
34    std::size_t operator()(const NotConstructible&) const {return 0;}
35};
36
37}
38
39#endif  // NOTCONSTRUCTIBLE_H
40