8 #ifndef BOTAN_STL_COMPATIBILITY_H_
9 #define BOTAN_STL_COMPATIBILITY_H_
11 #include <botan/types.h>
14 #if __cplusplus < 201402L
16 #include <type_traits>
29 #if __cplusplus >= 201402L
30 template <
typename T,
typename ... Args>
33 return std::make_unique<T>(std::forward<Args>(args)...);
39 return std::make_unique<T>(size);
43 namespace stlCompatibilityDetails
61 template<
class T,
class... Args>
64 return std::unique_ptr<T>(
new T(std::forward<Args>(args)...));
71 return std::unique_ptr<T>(
new U[n]());
74 template<
class T,
class... Args>
75 typename stlCompatibilityDetails::_Unique_if<T>::_Known_bound
make_unique(Args&&...) =
delete;
std::unique_ptr< T[]> _Unknown_bound
stlCompatibilityDetails::_Unique_if< T >::_Known_bound make_unique(Args &&...)=delete
std::unique_ptr< T > _Single_object
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)