Make the type traits for a const pointer defer to those for a unqualified

pointer, instead of providing independent values modelled on the default
implementation.

llvm-svn: 82620
This commit is contained in:
John McCall 2009-09-23 06:53:51 +00:00
parent 863ed2677b
commit 24a3aba8b8

View File

@ -50,12 +50,16 @@ public:
// Provide PointerLikeTypeTraits for const pointers.
template<typename T>
class PointerLikeTypeTraits<const T*> {
typedef PointerLikeTypeTraits<T*> NonConst;
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);
static inline const void *getAsVoidPointer(const T* P) {
return NonConst::getAsVoidPointer(const_cast<T*>(P));
}
enum { NumLowBitsAvailable = 2 };
static inline const T *getFromVoidPointer(const void *P) {
return NonConst::getFromVoidPointer(const_cast<void*>(P));
}
enum { NumLowBitsAvailable = NonConst::NumLowBitsAvailable };
};
// Provide PointerLikeTypeTraits for uintptr_t.