From e4ecc87090f72bd3ce4c02986ebf99e15100b695 Mon Sep 17 00:00:00 2001 From: Omar Shrit Date: Fri, 19 Jun 2020 14:47:59 +0200 Subject: [PATCH] Pointer wrapper to serialize raw pointer with cereal Signed-off-by: Omar Shrit --- src/mlpack/core/cereal/pointer_wrapper.hpp | 24 ++++++++-------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/src/mlpack/core/cereal/pointer_wrapper.hpp b/src/mlpack/core/cereal/pointer_wrapper.hpp index 9385b19595..af31d13747 100644 --- a/src/mlpack/core/cereal/pointer_wrapper.hpp +++ b/src/mlpack/core/cereal/pointer_wrapper.hpp @@ -20,14 +20,10 @@ template class pointer_wrapper { public: + pointer_wrapper(T*& pointer) + : localPointer(pointer) + {} - pointer_wrapper(T * pointer) - { - localPointer = std::move(pointer); - std::cout << "address of local ptr" << localPointer << std::endl; - std::cout << "address of pointer" << pointer << std::endl; - } - template void save(Archive& ar, const unsigned int /*version*/) const { @@ -38,17 +34,15 @@ public: template void load(Archive& ar, const unsigned int /*version*/) { - std::unique_ptr smartPointer; - ar(CEREAL_NVP(smartPointer)); - this->localPointer = smartPointer.release(); - std::cout << "The value of localPointer is : " << *localPointer << std::endl; - std::cout << "The addresss of localPointer is : " << &localPointer << std::endl; + std::unique_ptr smartPointer; + ar(CEREAL_NVP(smartPointer)); + localPointer = smartPointer.release(); } + T*& release() { return localPointer; } + private: - T* localPointer; - - + T*& localPointer; }; template