Go to the source code of this file.
|
template<composition_strategy CompositionStrategy, class FirstFn , class SecondFn , class... OtherFns>
requires (std::same_as<unwrap_functional_t<FirstFn>, FirstFn> && std::same_as<unwrap_functional_t<SecondFn>, SecondFn> && (... && std::same_as<unwrap_functional_t<OtherFns>, OtherFns>)) |
constexpr auto | sl::functional::make_composition (FirstFn &&firstFn, SecondFn &&secondFn, OtherFns &&... otherFns) noexcept(std::is_nothrow_constructible_v< std::remove_cvref_t< FirstFn >, FirstFn > &&std::is_nothrow_constructible_v< std::remove_cvref_t< SecondFn >, SecondFn > &&(... &&std::is_nothrow_constructible_v< std::remove_cvref_t< OtherFns >, OtherFns >)) |
| Base factory overload, taking fully unwrapped functional objects and forwarding those to a newly created Composition instance.
|
|
template<composition_strategy CompositionStrategy, class FirstFn , class SecondFn , class... OtherFns> |
constexpr auto | sl::functional::make_composition (FirstFn &&firstFn, SecondFn &&secondFn, OtherFns &&... otherFns) noexcept(noexcept(make_composition< CompositionStrategy >(forward_unwrapped< FirstFn >(firstFn), forward_unwrapped< SecondFn >(secondFn), forward_unwrapped< OtherFns >(otherFns)...))) |
| Factory overload, unwrapping the given functionals and forwarding those to a newly created Composition instance.
|
|