8 #ifndef BOTAN_STL_COMPATIBILITY_H_ 9 #define BOTAN_STL_COMPATIBILITY_H_ 13 #if __cplusplus < 201402L 15 #include <type_traits> 26 #if __cplusplus >= 201402L 27 template <
typename T,
typename ... Args>
30 return std::make_unique<T>(std::forward<Args>(args)...);
36 return std::make_unique<T>(size);
40 namespace stlCompatibilityDetails
58 template<
class T,
class... Args>
61 return std::unique_ptr<T>(
new T(std::forward<Args>(args)...));
68 return std::unique_ptr<T>(
new U[n]());
71 template<
class T,
class... Args>
72 typename stlCompatibilityDetails::_Unique_if<T>::_Known_bound
make_unique(Args&&...) =
delete;
std::unique_ptr< T[]> _Unknown_bound
stlCompatibilityDetails::_Unique_if< T >::_Single_object make_unique(Args &&... args)
std::unique_ptr< T > _Single_object