Works around a bug (PR28216) in Clang's MS mangling of templates with
partial specializations.
This mismatch was introduced in about six months ago in r256656.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273223
91177308-0d34-0410-b5e6-
96231b3b80d8
}
// Provide PointerLikeTypeTraits for non-cvr pointers.
-template <typename T> struct PointerLikeTypeTraits<T *> {
+template <typename T> class PointerLikeTypeTraits<T *> {
+public:
static inline void *getAsVoidPointer(T *P) { return P; }
static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
};
};
-template <> struct PointerLikeTypeTraits<void *> {
+template <> class PointerLikeTypeTraits<void *> {
+public:
static inline void *getAsVoidPointer(void *P) { return P; }
static inline void *getFromVoidPointer(void *P) { return P; }