Support Class Library
A set of tools providing classes and utility
Classes | Namespaces | Typedefs | Functions
fn_introspect.h File Reference
#include <functional>
#include <scl/tools/meta/enable_if.h>
#include <scl/tools/meta/exists.h>
#include <scl/tools/meta/type_mod.h>

Go to the source code of this file.

Classes

struct  scl::tools::meta::function_traits< class >
 Traits for callable types. More...
 
struct  scl::tools::meta::function_traits< std::function< R(Args...)> >
 Specialization for std::function. More...
 
struct  scl::tools::meta::fn< class, class >
 
struct  scl::tools::meta::fn< R(*)(Args...), void >
 
struct  scl::tools::meta::fn< R(Class::*const)(Args...), void >
 
struct  scl::tools::meta::fn< R(Class::*const)(Args...), std::nullptr_t >
 
struct  scl::tools::meta::fn< F, decltype(&F::operator())>
 

Namespaces

 scl
 Global namespace of the SCL.
 
 scl::tools
 General purpose tooling.
 
 scl::tools::meta
 A namespace englobing all the TMP tools.
 

Typedefs

template<class T >
using scl::tools::meta::return_t = typename function_traits< T >::return_type
 
template<class T , size_t i>
using scl::tools::meta::arg_t = typename function_traits< T >::template arg_t< i >
 
template<class F >
using scl::tools::meta::fn_t = fn< F, void >
 
template<class F >
using scl::tools::meta::std_fn_type = typename fn_t< F >::fn_type
 

Functions

template<class R , class... Args>
std_fn_type< R(*)(Args...)> scl::tools::meta::as_fn (R(*f)(Args...))
 
template<class Class , class R , class... Args>
std_fn_type< R(Class::*const)(Args...)> scl::tools::meta::as_fn (R(Class::*const f)(Args...) const)
 
template<class F >
fn< F, void >::fn_type scl::tools::meta::as_fn (F f)