|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace sr |
|
|
namespace sr |
|
|
{ |
|
|
{ |
|
|
namespace detail |
|
|
|
|
|
{ |
|
|
|
|
|
template<class T, class TT> |
|
|
|
|
|
using is_ntmocp_constructible = std::conditional_t<std::is_reference_v<TT> |
|
|
|
|
|
|| !std::is_nothrow_move_constructible_v<TT>, |
|
|
|
|
|
typename std::is_constructible<T, const TT&>::type, |
|
|
|
|
|
typename std::is_constructible<T, TT>::type>; |
|
|
|
|
|
|
|
|
|
|
|
template<class T, class TT> |
|
|
|
|
|
constexpr auto is_nothrow_move_or_copy_constructible_from_v = is_ntmocp_constructible<T, TT>::value; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template<class R, class D> |
|
|
template<class R, class D> |
|
|
class unique_resource |
|
|
class unique_resource |