From 7cc66f48372ed45829ce8522040a3fe16f71a33e Mon Sep 17 00:00:00 2001 From: Andreas Schuh Date: Mon, 11 Nov 2019 12:33:32 +0000 Subject: [PATCH] fix: Revert to C++11 and provide alternative implementation for NewUnique Also renamed recently added MakeUnique to NewUnique in alignment with NewShared. --- BasisProject.cmake | 2 +- Modules/Common/include/mirtk/Memory.h | 22 +++++++--------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/BasisProject.cmake b/BasisProject.cmake index 8eaa0d46b..eab55fa79 100644 --- a/BasisProject.cmake +++ b/BasisProject.cmake @@ -60,7 +60,7 @@ basis_project ( LICENSE "Apache License Version 2.0" CONTACT "Andreas Schuh " TEMPLATE "with-basis-submodule/1.0" - LANGUAGES C CXX-14 + LANGUAGES C CXX-11 # -------------------------------------------------------------------------- # directories diff --git a/Modules/Common/include/mirtk/Memory.h b/Modules/Common/include/mirtk/Memory.h index 2fe900c1d..e66e1d745 100644 --- a/Modules/Common/include/mirtk/Memory.h +++ b/Modules/Common/include/mirtk/Memory.h @@ -41,28 +41,20 @@ using SharedPtr = std::shared_ptr; template using WeakPtr = std::weak_ptr; -template -UniquePtr MakeUnique() -{ - return std::make_unique(); -} - template -UniquePtr MakeUnique(Args&&... args) -{ - return std::make_unique(args...); -} - -template -SharedPtr NewShared() +UniquePtr NewUnique(Args&&... args) { - return std::make_shared(); + #if __cplusplus == 201103L + return UniquePtr(new T(std::forward(args)...)); + #else + return std::make_unique(std::forward(args)...); + #endif } template SharedPtr NewShared(Args&&... args) { - return std::make_shared(args...); + return std::make_shared(std::forward(args)...); } using std::memset;