31 namespace json_details {
32 template<
typename T,
typename... Args>
33 DAW_CPP20_CONCEPT should_list_construct_v =
34 not std::is_constructible_v<T, Args...> and
35 daw::traits::is_list_constructible_v<T, Args...>;
40 template<
typename T,
typename =
void>
45 typename... Args DAW_ENABLEIF( std::is_constructible_v<T, Args...> )>
50 return T( DAW_FWD( args )... );
53 template<
typename... Args DAW_ENABLEIF(
54 json_details::should_list_construct_v<T, Args...> )>
55 DAW_REQUIRES( json_details::should_list_construct_v<T, Args...> )
58 noexcept( std::is_nothrow_constructible_v<T, Args...> ) {
59 return T{ DAW_FWD( args )... };
67 template<
typename T,
typename =
void>
74 DAW_REQUIRES( concepts::nullable_impl::is_list_constructible_v<T> and
75 not concepts::is_nullable_value_v<T> )
77 concepts::nullable_impl::is_list_constructible_v<T> and