diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-09-01 22:55:40 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-09-01 22:55:40 +0000 |
commit | 551ccae044b0ff658fe629dd67edd5ffe75d10e8 (patch) | |
tree | d7fa643a1f1f12dbc4ee049bcc7a032a49b17d51 /include/Support/TypeInfo.h | |
parent | ed543731fb385b55750d0c514d130a810339d739 (diff) |
Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/Support/TypeInfo.h')
-rw-r--r-- | include/Support/TypeInfo.h | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/include/Support/TypeInfo.h b/include/Support/TypeInfo.h deleted file mode 100644 index e23f906afa..0000000000 --- a/include/Support/TypeInfo.h +++ /dev/null @@ -1,76 +0,0 @@ -//===- Support/TypeInfo.h - Support class for type_info objects -*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This class makes std::type_info objects behave like first class objects that -// can be put in maps and hashtables. This code is based off of code in the -// Loki C++ library from the Modern C++ Design book. -// -//===----------------------------------------------------------------------===// - -#ifndef SUPPORT_TYPEINFO_H -#define SUPPORT_TYPEINFO_H - -#include <typeinfo> - -namespace llvm { - -struct TypeInfo { - TypeInfo() { // needed for containers - struct Nil {}; // Anonymous class distinct from all others... - Info = &typeid(Nil); - } - - TypeInfo(const std::type_info &ti) : Info(&ti) { // non-explicit - } - - // Access for the wrapped std::type_info - const std::type_info &get() const { - return *Info; - } - - // Compatibility functions - bool before(const TypeInfo &rhs) const { - return Info->before(*rhs.Info) != 0; - } - const char *getClassName() const { - return Info->name(); - } - -private: - const std::type_info *Info; -}; - -// Comparison operators -inline bool operator==(const TypeInfo &lhs, const TypeInfo &rhs) { - return lhs.get() == rhs.get(); -} - -inline bool operator<(const TypeInfo &lhs, const TypeInfo &rhs) { - return lhs.before(rhs); -} - -inline bool operator!=(const TypeInfo &lhs, const TypeInfo &rhs) { - return !(lhs == rhs); -} - -inline bool operator>(const TypeInfo &lhs, const TypeInfo &rhs) { - return rhs < lhs; -} - -inline bool operator<=(const TypeInfo &lhs, const TypeInfo &rhs) { - return !(lhs > rhs); -} - -inline bool operator>=(const TypeInfo &lhs, const TypeInfo &rhs) { - return !(lhs < rhs); -} - -} // End llvm namespace - -#endif |