Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Clang needs pointers to be explicitely casted here.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Sat, 28 Oct 2017 20:05:05 +0000 (22:05 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 8 Nov 2017 16:36:21 +0000 (17:36 +0100)
src/mc/remote/RemotePtr.hpp

index 62c317c..d92eb7a 100644 (file)
@@ -40,11 +40,14 @@ private:
 public:
   Remote() { /* Nothing to do */}
   ~Remote() { /* Nothing to do */}
-  Remote(T& p) { std::memcpy(&buffer, &p, sizeof(buffer)); }
-  Remote(Remote const& that) { std::memcpy(&buffer, &that.buffer, sizeof(buffer)); }
+  Remote(T const& p) { std::memcpy(static_cast<void*>(&buffer), static_cast<const void*>(&p), sizeof(buffer)); }
+  Remote(Remote const& that)
+  {
+    std::memcpy(static_cast<void*>(&buffer), static_cast<const void*>(&that.buffer), sizeof(buffer));
+  }
   Remote& operator=(Remote const& that)
   {
-    std::memcpy(&buffer, &that.buffer, sizeof(buffer));
+    std::memcpy(static_cast<void*>(&buffer), static_cast<const void*>(&that.buffer), sizeof(buffer));
     return *this;
   }
   T* getBuffer() { return &buffer; }