Support Class Library
A set of tools providing classes and utility
Namespaces | Typedefs | Functions
invoke.h File Reference
#include <functional>
#include <utility>
#include <scl/macros.h>
#include <scl/tools/meta/fn_type.h>

Go to the source code of this file.

Namespaces

 scl
 Global namespace of the SCL.
 
 scl::utils
 Utility classes (and rare functions)
 

Typedefs

template<class F , class... Args>
using scl::utils::invoke_result_t = decltype(invoke(std::declval< F >(), std::declval< Args >()...))
 

Functions

template<class R , class... Args>
scl::utils::invoke (scl::tools::meta ::fn_sig_type< R, Args... > fn, Args &&... args)
 
template<class R , class Class , class... Args>
scl::utils::invoke (scl::tools::meta ::memfn_type< R, Class, Args... > fn, Class &obj, Args &&... args)
 
template<class R , class Class , class... Args>
scl::utils::invoke (scl::tools::meta ::const_memfn_type< R, Class, Args... > fn, const Class &obj, Args &&... args)
 
template<class R , class Class , class... Args>
scl::utils::invoke (scl::tools::meta ::memfn_type< R, Class, Args... > fn, Class &&obj, Args &&... args)
 
template<class R , class Class , class... Args>
scl::utils::invoke (scl::tools::meta ::memfn_type< R, Class, Args... > fn, Class *const obj, Args &&... args)
 
template<class R , class Class , class... Args>
scl::utils::invoke (scl::tools::meta ::const_memfn_type< R, Class, Args... > fn, const Class *const obj, Args &&... args)
 
template<class R , class Class >
scl::utils::invoke (scl::tools::meta ::mem_ptr_type< R, Class > fn, const Class &obj)
 
template<class R , class Class >
scl::utils::invoke (scl::tools::meta ::mem_ptr_type< R, Class > fn, const Class *obj)
 
template<class F , class... Args>
auto scl::utils::invoke (F &&fn, Args &&... args) -> decltype(std::forward< F >(fn)(std::forward< Args >(args)...))