Skip to content

Commit

Permalink
fix: Revert to C++11 and provide alternative implementation for NewUn…
Browse files Browse the repository at this point in the history
…ique

Also renamed recently added MakeUnique to NewUnique in alignment with NewShared.
  • Loading branch information
schuhschuh committed Nov 11, 2019
1 parent d693ef9 commit 7cc66f4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 16 deletions.
2 changes: 1 addition & 1 deletion BasisProject.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ basis_project (
LICENSE "Apache License Version 2.0"
CONTACT "Andreas Schuh <[email protected]>"
TEMPLATE "with-basis-submodule/1.0"
LANGUAGES C CXX-14
LANGUAGES C CXX-11

# --------------------------------------------------------------------------
# directories
Expand Down
22 changes: 7 additions & 15 deletions Modules/Common/include/mirtk/Memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,28 +41,20 @@ using SharedPtr = std::shared_ptr<T>;
template <class T>
using WeakPtr = std::weak_ptr<T>;

template <class T>
UniquePtr<T> MakeUnique()
{
return std::make_unique<T>();
}

template <class T, class... Args>
UniquePtr<T> MakeUnique(Args&&... args)
{
return std::make_unique<T>(args...);
}

template <class T>
SharedPtr<T> NewShared()
UniquePtr<T> NewUnique(Args&&... args)
{
return std::make_shared<T>();
#if __cplusplus == 201103L
return UniquePtr<T>(new T(std::forward<Args>(args)...));
#else
return std::make_unique<T>(std::forward<Args>(args)...);
#endif
}

template <class T, class... Args>
SharedPtr<T> NewShared(Args&&... args)
{
return std::make_shared<T>(args...);
return std::make_shared<T>(std::forward<Args>(args)...);
}

using std::memset;
Expand Down

0 comments on commit 7cc66f4

Please sign in to comment.