Iros
 
Loading...
Searching...
No Matches
di::function::curry_ns::CurryImpl< F, max_arity_in > Struct Template Reference

#include <di/function/curry.h>

Inheritance diagram for di::function::curry_ns::CurryImpl< F, max_arity_in >:
[legend]

Public Types

using Base = Curry<CurryImpl<F, max_arity_in>>
 

Public Member Functions

 CurryImpl ()=default
 
template<typename... Args>
requires (concepts::ConstructibleFrom<F, Args...>)
constexpr CurryImpl (InPlace, Args &&... args)
 
 CurryImpl (CurryImpl const &)=default
 
 CurryImpl (CurryImpl &&)=default
 
auto operator= (CurryImpl const &) -> CurryImpl &=delete
 
auto operator= (CurryImpl &&) -> CurryImpl &=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_ns::Curry< Self >
 Curry ()=default
 
 Curry (Curry const &)=default
 
 Curry (Curry &&)=default
 
auto operator= (Curry const &) -> Curry &=delete
 
auto operator= (Curry &&) -> Curry &=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
 

Additional Inherited Members

- Static Public Member Functions inherited from di::function::curry_ns::Curry< Self >
static constexpr auto max_arity ()
 

Member Typedef Documentation

◆ Base

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
using di::function::curry_ns::CurryImpl< F, max_arity_in >::Base = Curry<CurryImpl<F, max_arity_in>>

Constructor & Destructor Documentation

◆ CurryImpl() [1/4]

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

◆ CurryImpl() [2/4]

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

◆ CurryImpl() [3/4]

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

◆ CurryImpl() [4/4]

template<typename F, usize max_arity_in = NumericLimits<usize>::max>
di::function::curry_ns::CurryImpl< F, max_arity_in >::CurryImpl ( CurryImpl< 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_ns::CurryImpl< 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_ns::CurryImpl< 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_ns::CurryImpl< 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_ns::CurryImpl< 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_ns::CurryImpl< F, max_arity_in >::operator= ( CurryImpl< F, max_arity_in > && ) -> CurryImpl &=delete
delete

◆ operator=() [2/2]

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

Member Data Documentation

◆ max_arity

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

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