Drake
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:

Go to the source code of this file.

Classes

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...
 

Namespaces

 drake
 
 drake::pydrake
 
 drake::pydrake::detail
 

Typedefs

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...
 

Functions

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...