Iros
 
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 >:
[legend]

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: