28template <
typename Model,
typename TupleOfArgs>
35 else if constexpr (std::is_default_constructible_v<Model>)
41 static_assert(std::is_default_constructible_v<
43 "The model to be constructed has neither a static "
44 "create() function nor is it default constructible.");
47template <
template <
typename...>
typename Tuple,
68template <
typename TupleOfModels,
typename... Args>
72 std::type_identity<TupleOfModels>{},
73 std::forward_as_tuple(std::forward<Args>(args)...));
Tuple< Models... > constructModels(std::type_identity< Tuple< Models... > >, TupleOfArgs &&args)
auto applyImpl(Function &&f, Args &&... args) -> typename detail::GetFunctionReturnType< std::decay_t< Function > >::type
Model constructModel(TupleOfArgs &args)
TupleOfModels constructModels(Args &&... args)