From 62b57271ebf955e4a08096853d82d0371b2d3589 Mon Sep 17 00:00:00 2001 From: Sam Yates <yates@cscs.ch> Date: Fri, 25 Nov 2016 16:59:25 +0100 Subject: [PATCH] Correct pointer casting operations in `uninitialized` (#101) Correct pointer casting operations in `uninitialized`: issue #100 --- src/util/uninitialized.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/util/uninitialized.hpp b/src/util/uninitialized.hpp index 8e3613cd..e8ea25c1 100644 --- a/src/util/uninitialized.hpp +++ b/src/util/uninitialized.hpp @@ -33,11 +33,11 @@ public: using reference = X&; using const_reference= const X&; - pointer ptr() { return reinterpret_cast<X*>(&data); } - const_pointer cptr() const { return reinterpret_cast<const X*>(&data); } + pointer ptr() { return static_cast<X*>(static_cast<void*>(&data)); } + const_pointer cptr() const { return static_cast<const X*>(static_cast<void*>(&data)); } - reference ref() { return *reinterpret_cast<X*>(&data); } - const_reference cref() const { return *reinterpret_cast<const X*>(&data); } + reference ref() { return *ptr(); } + const_reference cref() const { return *cptr(); } // Copy construct the value. template < -- GitLab