di 0.1.0
Loading...
Searching...
No Matches
di::function::curry_back_ns::CurryBackImpl< F, max_arity_in > Struct Template Reference

#include <di/function/curry_back.h>

Inheritance diagram for di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >:
di::function::curry_back_ns::CurryBack< Self > di::function::pipeline::EnablePipeline

Public Types

using Base = CurryBack<CurryBackImpl<F, max_arity_in>>

Public Member Functions

 CurryBackImpl ()=default
template<typename... Args>
requires (concepts::ConstructibleFrom<F, Args...>)
constexpr CurryBackImpl (InPlace, Args &&... args)
 CurryBackImpl (CurryBackImpl const &)=default
 CurryBackImpl (CurryBackImpl &&)=default
auto operator= (CurryBackImpl const &) -> CurryBackImpl &=delete
auto operator= (CurryBackImpl &&) -> CurryBackImpl &=delete
template<typename... Args>
requires (concepts::Invocable<F&, Args...> || concepts::Callable<Base&, Args...>)
constexpr auto operator() (Args &&... args) &-> decltype(auto)
template<typename... Args>
requires (concepts::Invocable<F const&, Args...> || concepts::Callable<Base const&, Args...>)
constexpr auto operator() (Args &&... args) const &-> decltype(auto)
template<typename... Args>
requires (concepts::Invocable<F, Args...> || concepts::Callable<Base &&, Args...>)
constexpr auto operator() (Args &&... args) &&-> decltype(auto)
template<typename... Args>
requires (concepts::Invocable<F const &&, Args...> || concepts::Callable<Base const &&, Args...>)
constexpr auto operator() (Args &&... args) const &&-> decltype(auto)
Public Member Functions inherited from di::function::curry_back_ns::CurryBack< Self >
 CurryBack ()=default
 CurryBack (CurryBack const &)=default
 CurryBack (CurryBack &&)=default
auto operator= (CurryBack const &) -> CurryBack &=delete
auto operator= (CurryBack &&) -> CurryBack &=delete
template<concepts::DecayConstructible... Args>
requires (concepts::ConstructibleFrom<Self, Self&> && sizeof...(Args) < max_arity())
constexpr auto operator() (Args &&... args) &
template<concepts::DecayConstructible... Args>
requires (concepts::ConstructibleFrom<Self, Self const&> && sizeof...(Args) < max_arity())
constexpr auto operator() (Args &&... args) const &
template<concepts::DecayConstructible... Args>
requires (concepts::ConstructibleFrom<Self, Self &&> && sizeof...(Args) < max_arity())
constexpr auto operator() (Args &&... args) &&
template<concepts::DecayConstructible... Args>
requires (concepts::ConstructibleFrom<Self, Self const &&> && sizeof...(Args) < max_arity())
constexpr auto operator() (Args &&... args) const &&

Static Public Attributes

static constexpr auto max_arity = max_arity_in

Member Typedef Documentation

◆ Base

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
using di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::Base = CurryBack<CurryBackImpl<F, max_arity_in>>

Constructor & Destructor Documentation

◆ CurryBackImpl() [1/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::CurryBackImpl ( )
default

◆ CurryBackImpl() [2/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
template<typename... Args>
requires (concepts::ConstructibleFrom<F, Args...>)
di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::CurryBackImpl ( InPlace ,
Args &&... args )
inlineconstexpr

◆ CurryBackImpl() [3/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::CurryBackImpl ( CurryBackImpl< F, max_arity_in > const & )
default

◆ CurryBackImpl() [4/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::CurryBackImpl ( CurryBackImpl< F, max_arity_in > && )
default

Member Function Documentation

◆ operator()() [1/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
template<typename... Args>
requires (concepts::Invocable<F, Args...> || concepts::Callable<Base &&, Args...>)
auto di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::operator() ( Args &&... args) &&->decltype(auto)
inlineconstexpr

◆ operator()() [2/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
template<typename... Args>
requires (concepts::Invocable<F&, Args...> || concepts::Callable<Base&, Args...>)
auto di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::operator() ( Args &&... args) &->decltype(auto)
inlineconstexpr

◆ operator()() [3/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
template<typename... Args>
requires (concepts::Invocable<F const &&, Args...> || concepts::Callable<Base const &&, Args...>)
auto di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::operator() ( Args &&... args) const &&->decltype(auto)
inlineconstexpr

◆ operator()() [4/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
template<typename... Args>
requires (concepts::Invocable<F const&, Args...> || concepts::Callable<Base const&, Args...>)
auto di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::operator() ( Args &&... args) const &->decltype(auto)
inlineconstexpr

◆ operator=() [1/2]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
auto di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::operator= ( CurryBackImpl< F, max_arity_in > && ) ->CurryBackImpl &=delete
delete

◆ operator=() [2/2]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
auto di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::operator= ( CurryBackImpl< F, max_arity_in > const & ) ->CurryBackImpl &=delete
delete

Member Data Documentation

◆ max_arity

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
auto di::function::curry_back_ns::CurryBackImpl< F, max_arity_in >::max_arity = max_arity_in
staticconstexpr

The documentation for this struct was generated from the following file: