21#ifndef __cpp_lib_make_unique
40 template<
class T,
class... Args>
43 return unique_ptr<T> (
new T (std::forward<Args> (args)...));
47 typename _Unique_if<T>::_Unknown_bound
49 typedef typename remove_extent<T>::type U;
50 return unique_ptr<T> (
new U[n]());
53 template<
class T,
class... Args>
54 typename _Unique_if<T>::_Known_bound
_Unique_if< T >::_Single_object make_unique(Args &&... args)
unique_ptr< T[]> _Unknown_bound
unique_ptr< T > _Single_object