OSVR-Core  0.6-1962-g59773924
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
GenericCaller.h File Reference

Header providing templated functions to automate the process of calling a C++ member function (specifically the function call operator) from a facility that accepts a C function pointer and an opaque "userdata" pointer. More...

#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/if.hpp>
#include <boost/preprocessor/enum.hpp>
#include <boost/preprocessor/enum_params.hpp>
#include <boost/preprocessor/repeat.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/function_types/function_arity.hpp>
#include <boost/function_types/result_type.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/type_traits/is_void.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/is_pointer.hpp>
#include <boost/type_traits/is_function.hpp>
#include <boost/type_traits/remove_cv.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/remove_pointer.hpp>
#include <boost/mpl/at.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/next_prior.hpp>
#include <boost/static_assert.hpp>

Go to the source code of this file.

Classes

struct  osvr::util::this_last_t
 Tag type indicating the last parameter of the function contains the "this" pointer. More...
 
struct  osvr::util::this_first_t
 Tag type indicating the first parameter of the function contains the "this" pointer. More...
 
struct  osvr::util::GenericCaller< FunctionPtr, FunctionObjectType, ThisLocation >
 Struct containing a single static function member named "call" that serves as a converter from a function call with an opaque userdata pointer to a functor call using the userdata pointer as "this". More...
 

Namespaces

 osvr
 The main namespace for all C++ elements of the framework, internal and external.
 
 osvr::util
 The Util library: Functionality not necessarily coupled to any particular core library, serving more as a common base layer behind all systems.
 

Functions

template<typename FunctionPtr , typename FunctionObjectType , typename ThisLocation >
FunctionPtr osvr::util::getCaller ()
 Get a generic functor caller: a pointer to a function that will call an object of your specific function object type, expecting the function object address passed as a void * as a parameter. More...
 
template<typename FunctionPtr , typename FunctionObjectType , typename ThisLocation >
FunctionPtr osvr::util::getCaller (ThisLocation const &)
 Get a generic functor caller. Specify the location of "this" through the argument: results in automatic type deduction for ThisLocation. More...
 
template<typename FunctionPtr , typename FunctionObjectType , typename ThisLocation >
FunctionPtr osvr::util::getCaller (FunctionObjectType const *, ThisLocation const &)
 Get a generic functor caller. Pass a pointer to a function object and specify the location of "this" through the argument: results in automatic type deduction for FunctionObjectType and ThisLocation. More...
 

Variables

BOOST_CONSTEXPR_OR_CONST
this_last_t 
this_last = {}
 Pass as an argument to a getCaller() overload to indicate the last parameter of the function contains the "this" pointer. More...
 
BOOST_CONSTEXPR_OR_CONST
this_first_t 
this_first = {}
 Pass as an argument to a getCaller() overload to indicate the first parameter of the function contains the "this" pointer. More...
 

Detailed Description

Header providing templated functions to automate the process of calling a C++ member function (specifically the function call operator) from a facility that accepts a C function pointer and an opaque "userdata" pointer.

Date
2014
Author
Sensics, Inc. http://sensics.com/osvr

Definition in file GenericCaller.h.

Variable Documentation

BOOST_CONSTEXPR_OR_CONST this_last_t this_last = {}

Pass as an argument to a getCaller() overload to indicate the last parameter of the function contains the "this" pointer.

()

Definition at line 86 of file GenericCaller.h.

BOOST_CONSTEXPR_OR_CONST this_first_t this_first = {}

Pass as an argument to a getCaller() overload to indicate the first parameter of the function contains the "this" pointer.

()

Definition at line 90 of file GenericCaller.h.