|
|
|
|
|
|
|
|
namespace detail |
|
|
namespace detail |
|
|
{ |
|
|
{ |
|
|
template<class T, class TT> |
|
|
template<class T, class TT> |
|
|
using is_ntmocp_constructible = std::conditional_t<std::is_reference<TT>::value |
|
|
|
|
|
|| !std::is_nothrow_move_constructible<TT>::value, |
|
|
|
|
|
|
|
|
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, const TT&>::type, |
|
|
typename std::is_constructible<T, TT>::type>; |
|
|
typename std::is_constructible<T, TT>::type>; |
|
|
|
|
|
|