diff --git a/CMakeLists.txt b/CMakeLists.txt index 8aad43a..24f4bcb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,6 @@ set(HEADER_FILES io/nativefilestream.h io/misc.h misc/math.h - misc/memory.h misc/multiarray.h misc/parseerror.h misc/traits.h diff --git a/misc/memory.h b/misc/memory.h deleted file mode 100644 index 568dcb7..0000000 --- a/misc/memory.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef MEMORY_H -#define MEMORY_H - -#include - -/// \cond - -#if __cplusplus <= 201103L -#define __cpp_lib_make_unique 201304 -namespace std { -template struct _MakeUniq { - typedef unique_ptr<_Tp> __single_object; -}; - -template struct _MakeUniq<_Tp[]> { - typedef unique_ptr<_Tp[]> __array; -}; - -template struct _MakeUniq<_Tp[_Bound]> { - struct __invalid_type { - }; -}; - -/// std::make_unique for single objects -template inline typename _MakeUniq<_Tp>::__single_object make_unique(_Args &&... __args) -{ - return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); -} - -/// std::make_unique for arrays of unknown bound -template inline typename _MakeUniq<_Tp>::__array make_unique(size_t __num) -{ - return unique_ptr<_Tp>(new typename remove_extent<_Tp>::type[__num]()); -} - -/// Disable std::make_unique for arrays of known bound -template inline typename _MakeUniq<_Tp>::__invalid_type make_unique(_Args &&...) = delete; -} // namespace std -#endif - -/// \endcond - -#endif // MEMORY_H