From 68452b2cb43a2d9b83a052d5c30ee0d607b4e351 Mon Sep 17 00:00:00 2001 From: James Benton Date: Wed, 25 Apr 2018 17:12:06 +0100 Subject: [PATCH] cpu: Fixes for Pointer. --- src/libcpu/pointer.h | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/libcpu/pointer.h b/src/libcpu/pointer.h index d2661f15..fc7f8bcd 100644 --- a/src/libcpu/pointer.h +++ b/src/libcpu/pointer.h @@ -139,9 +139,9 @@ public: } // Pointer = const Pointer & - template::value>::type> - Pointer &operator =(const Pointer::type, AddressType> &other) + template + typename std::enable_if::value, Pointer>::type & + operator =(const Pointer::type, AddressType> &other) { mAddress = other.mAddress; return *this; @@ -163,37 +163,43 @@ public: } template - typename std::enable_if::value, dereference_type &>::type operator *() + typename std::enable_if::value, dereference_type &>::type + operator *() { return *internal::translate(mAddress); } template - typename std::enable_if::value, const dereference_type &>::type operator *() const + typename std::enable_if::value, const dereference_type &>::type + operator *() const { return *internal::translate(mAddress); } template - typename std::enable_if::value, dereference_type *>::type operator ->() + typename std::enable_if::value, dereference_type *>::type + operator ->() { return internal::translate(mAddress); } template - typename std::enable_if::value, const dereference_type *>::type operator ->() const + typename std::enable_if::value, const dereference_type *>::type + operator ->() const { return internal::translate(mAddress); } template - typename std::enable_if::value, dereference_type &>::type operator [](size_t index) + typename std::enable_if::value, dereference_type &>::type + operator [](size_t index) { return internal::translate(mAddress)[index]; } template - typename std::enable_if::value, const dereference_type &>::type operator [](size_t index) const + typename std::enable_if::value, const dereference_type &>::type + operator [](size_t index) const { return internal::translate(mAddress)[index]; } @@ -325,7 +331,7 @@ public: } protected: - template + template friend struct pointer_cast_impl; template