wrap_function.h File Reference
#include <functional>
#include <type_traits>
#include <utility>
Include dependency graph for wrap_function.h:
This graph shows which files directly or indirectly include this file:


struct  function_info< Func, Return, Args >
struct  functor_helpers
struct  wrap_function_impl< wrap_arg_policy, use_functions >
struct  wrap_function_impl< wrap_arg_policy, use_functions >::wrap_arg_functions< T >
struct  wrap_function_impl< wrap_arg_policy, use_functions >::wrap_type< T, Extra >
struct  wrap_function_impl< wrap_arg_policy, use_functions >::wrap_type< void, Extra >
struct  wrap_function_impl< wrap_arg_policy, use_functions >::wrap_arg_functions< const std::function< Return(Args...)> & >
struct  wrap_function_impl< wrap_arg_policy, use_functions >::wrap_arg_functions< std::function< Signature > >
struct  wrap_arg_default< T >
 Default case for argument wrapping, with pure pass-through. More...




template<typename Func , typename T = void>
using enable_if_lambda_t = std::enable_if_t<!std::is_function< std::decay_t< Func > >::value, T >
template<template< typename... > class wrap_arg_policy, typename Signature >
using wrap_arg_function = typename detail::wrap_function_impl< wrap_arg_policy >::template wrap_arg< std::function< Signature > >
 Policy for explicitly wrapping functions for a given policy. More...


template<typename Return , typename ... Args, typename Func >
auto make_function_info (Func &&func, Return(*infer)(Args...)=nullptr)
template<typename Return , typename ... Args>
auto infer_function_info (Return(*func)(Args...))
template<typename Return , typename Class , typename ... Args>
auto infer_function_info (Return(Class::*method)(Args...))
template<typename Func , typename = detail::enable_if_lambda_t<Func>>
auto infer_function_info (Func &&func)
template<template< typename... > class wrap_arg_policy, bool use_functions = true, typename Func = void>
auto WrapFunction (Func &&func)
 Wraps the types used in a function signature to produce a new function with wrapped arguments and return value (if non-void). More...