Iros
 
Loading...
Searching...
No Matches
di::function::detail::ComposeFunction< F, G > Class Template Reference

#include <di/function/compose.h>

Inheritance diagram for di::function::detail::ComposeFunction< F, G >:
[legend]

Public Member Functions

template<typename Fn, typename Gn>
constexpr ComposeFunction (Fn &&f, Gn &&g)
 
constexpr ComposeFunction (ComposeFunction const &)=default
 
constexpr ComposeFunction (ComposeFunction &&)=default
 
constexpr auto operator= (ComposeFunction const &) -> ComposeFunction &=delete
 
constexpr auto operator= (ComposeFunction &&) -> ComposeFunction &=delete
 
template<typename... Args>
requires (concepts::Invocable<G&, Args...> && concepts::Invocable<F&, meta::InvokeResult<G&, Args...>>)
constexpr auto operator() (Args &&... args) &-> decltype(auto)
 
template<typename... Args>
requires (concepts::Invocable<G const&, Args...> && concepts::Invocable<F const&, meta::InvokeResult<G const&, Args...>>)
constexpr auto operator() (Args &&... args) const &-> decltype(auto)
 
template<typename... Args>
requires (concepts::Invocable<G &&, Args...> && concepts::Invocable<F &&, meta::InvokeResult<G &&, Args...>>)
constexpr auto operator() (Args &&... args) &&-> decltype(auto)
 
template<typename... Args>
requires (concepts::Invocable<G const &&, Args...> && concepts::Invocable<F const &&, meta::InvokeResult<G const &&, Args...>>)
constexpr auto operator() (Args &&... args) const &&-> decltype(auto)
 

Constructor & Destructor Documentation

◆ ComposeFunction() [1/3]

template<typename F, typename G>
template<typename Fn, typename Gn>
di::function::detail::ComposeFunction< F, G >::ComposeFunction ( Fn && f,
Gn && g )
inlineexplicitconstexpr

◆ ComposeFunction() [2/3]

template<typename F, typename G>
di::function::detail::ComposeFunction< F, G >::ComposeFunction ( ComposeFunction< F, G > const & )
constexprdefault

◆ ComposeFunction() [3/3]

template<typename F, typename G>
di::function::detail::ComposeFunction< F, G >::ComposeFunction ( ComposeFunction< F, G > && )
constexprdefault

Member Function Documentation

◆ operator()() [1/4]

template<typename F, typename G>
template<typename... Args>
requires (concepts::Invocable<G &&, Args...> && concepts::Invocable<F &&, meta::InvokeResult<G &&, Args...>>)
auto di::function::detail::ComposeFunction< F, G >::operator() ( Args &&... args) && -> decltype(auto)
inlineconstexpr

◆ operator()() [2/4]

template<typename F, typename G>
template<typename... Args>
requires (concepts::Invocable<G&, Args...> && concepts::Invocable<F&, meta::InvokeResult<G&, Args...>>)
auto di::function::detail::ComposeFunction< F, G >::operator() ( Args &&... args) & -> decltype(auto)
inlineconstexpr

◆ operator()() [3/4]

template<typename F, typename G>
template<typename... Args>
requires (concepts::Invocable<G const &&, Args...> && concepts::Invocable<F const &&, meta::InvokeResult<G const &&, Args...>>)
auto di::function::detail::ComposeFunction< F, G >::operator() ( Args &&... args) const && -> decltype(auto)
inlineconstexpr

◆ operator()() [4/4]

template<typename F, typename G>
template<typename... Args>
requires (concepts::Invocable<G const&, Args...> && concepts::Invocable<F const&, meta::InvokeResult<G const&, Args...>>)
auto di::function::detail::ComposeFunction< F, G >::operator() ( Args &&... args) const & -> decltype(auto)
inlineconstexpr

◆ operator=() [1/2]

template<typename F, typename G>
auto di::function::detail::ComposeFunction< F, G >::operator= ( ComposeFunction< F, G > && ) -> ComposeFunction &=delete
constexprdelete

◆ operator=() [2/2]

template<typename F, typename G>
auto di::function::detail::ComposeFunction< F, G >::operator= ( ComposeFunction< F, G > const & ) -> ComposeFunction &=delete
constexprdelete

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