diff options
author | Chris Lattner <sabre@nondot.org> | 2009-03-29 00:39:30 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-03-29 00:39:30 +0000 |
commit | 8ee1b5e916249d1a64ad8cf99b08a0e160f9d052 (patch) | |
tree | ac2ac279663151c5daa5ec412fe9ed96a22606d8 /include/llvm/ADT/SmallPtrSet.h | |
parent | 6a0dcc10778468b1556474aa43d4a86a14ab15d7 (diff) | |
download | external_llvm-8ee1b5e916249d1a64ad8cf99b08a0e160f9d052.tar.gz external_llvm-8ee1b5e916249d1a64ad8cf99b08a0e160f9d052.tar.bz2 external_llvm-8ee1b5e916249d1a64ad8cf99b08a0e160f9d052.zip |
rename PointerLikeTypeInto to PointerLikeTypeTraits, add trait for
# low bits free, and move to its own header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67973 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/SmallPtrSet.h')
-rw-r--r-- | include/llvm/ADT/SmallPtrSet.h | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/include/llvm/ADT/SmallPtrSet.h b/include/llvm/ADT/SmallPtrSet.h index 47af22884d..a189de2c22 100644 --- a/include/llvm/ADT/SmallPtrSet.h +++ b/include/llvm/ADT/SmallPtrSet.h @@ -18,33 +18,9 @@ #include <cassert> #include <cstring> #include "llvm/Support/DataTypes.h" +#include "llvm/Support/PointerLikeTypeTraits.h" namespace llvm { - -/// PointerLikeTypeInfo - This is a traits object that is used to handle pointer -/// types and things that are just wrappers for pointers as a uniform entity. -template <typename T> -class PointerLikeTypeInfo { - //getAsVoidPointer/getFromVoidPointer -}; - -// Provide PointerLikeTypeInfo for all pointers. -template<typename T> -class PointerLikeTypeInfo<T*> { -public: - static inline void *getAsVoidPointer(T* P) { return P; } - static inline T *getFromVoidPointer(void *P) { - return static_cast<T*>(P); - } -}; -template<typename T> -class PointerLikeTypeInfo<const T*> { -public: - static inline const void *getAsVoidPointer(const T* P) { return P; } - static inline const T *getFromVoidPointer(const void *P) { - return static_cast<const T*>(P); - } -}; class SmallPtrSetIteratorImpl; @@ -193,7 +169,7 @@ protected: /// SmallPtrSetIterator - This implements a const_iterator for SmallPtrSet. template<typename PtrTy> class SmallPtrSetIterator : public SmallPtrSetIteratorImpl { - typedef PointerLikeTypeInfo<PtrTy> PtrTraits; + typedef PointerLikeTypeTraits<PtrTy> PtrTraits; public: explicit SmallPtrSetIterator(const void *const *BP) : SmallPtrSetIteratorImpl(BP) {} @@ -250,7 +226,7 @@ class SmallPtrSet : public SmallPtrSetImpl { // Make sure that SmallSize is a power of two, round up if not. enum { SmallSizePowTwo = NextPowerOfTwo<SmallSize>::Val }; void *SmallArray[SmallSizePowTwo]; - typedef PointerLikeTypeInfo<PtrType> PtrTraits; + typedef PointerLikeTypeTraits<PtrType> PtrTraits; public: SmallPtrSet() : SmallPtrSetImpl(NextPowerOfTwo<SmallSizePowTwo>::Val) {} SmallPtrSet(const SmallPtrSet &that) : SmallPtrSetImpl(that) {} |