14 requires(concepts::ConstructibleFrom<meta::Decay<F>,
F>)
26 template<
typename... Args>
28 constexpr auto operator()(Args&&... args) & ->
decltype(
auto) {
32 template<
typename... Args>
34 constexpr auto operator()(Args&&... args)
const& ->
decltype(
auto) {
38 template<
typename... Args>
40 constexpr auto operator()(Args&&... args) && ->
decltype(
auto) {
41 return function::invoke(util::move(m_function), util::move(*
this), util::forward<Args>(args)...);
44 template<
typename... Args>
46 constexpr auto operator()(Args&&... args)
const&& ->
decltype(
auto) {
47 return function::invoke(util::move(m_function), util::move(*
this), util::forward<Args>(args)...);
57 constexpr auto operator()(F&&
function)
const {
Definition operations.h:11
concept F
Definition zip_transform.h:12
Definition bind_back.h:16
constexpr auto invoke
Definition invoke.h:100
constexpr auto ycombinator
Definition ycombinator.h:63
Definition zstring_parser.h:9
constexpr auto in_place
Definition in_place.h:8
Definition ycombinator.h:54
Definition ycombinator.h:15
YCombinator(YCombinator &&)=default
constexpr YCombinator(InPlace, Fn &&function)
Definition ycombinator.h:18
auto operator=(YCombinator const &) -> YCombinator &=delete
YCombinator(YCombinator const &)=default
auto operator=(YCombinator &&) -> YCombinator &=delete