- Aldebaran documentation |
- C++ Libraries |
- index

libqi-api 2.8.7.4

- Main Page
- Related Pages
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Macros | Typedefs | Functions
anyfunctionfactory.hxx File Reference
`#include <boost/mpl/for_each.hpp>`
`#include <boost/mpl/transform_view.hpp>`
`#include <boost/mpl/find_if.hpp>`
`#include <boost/mpl/vector.hpp>`
`#include <boost/mpl/pop_front.hpp>`
`#include <boost/mpl/at.hpp>`
`#include <boost/mpl/placeholders.hpp>`
`#include <boost/mpl/max_element.hpp>`
`#include <boost/mpl/transform.hpp>`
`#include <boost/type_traits/remove_reference.hpp>`
`#include <boost/type_traits/add_pointer.hpp>`
`#include <boost/type_traits/remove_const.hpp>`
`#include <boost/type_traits/remove_pointer.hpp>`
`#include <boost/type_traits/is_member_function_pointer.hpp>`
`#include <boost/function_types/function_type.hpp>`
`#include <boost/function_types/function_arity.hpp>`
`#include <boost/function_types/function_pointer.hpp>`
`#include <boost/function_types/member_function_pointer.hpp>`
`#include <boost/function_types/result_type.hpp>`
`#include <boost/function_types/parameter_types.hpp>`
`#include <boost/bind.hpp>`
`#include <boost/any.hpp>`
`#include <boost/thread/mutex.hpp>`
`#include <qi/atomic.hpp>`
`#include <qi/anyvalue.hpp>`
`#include <ka/typetraits.hpp>`

Go to the source code of this file.

## Classes
class | qi::detail::Class
struct | qi::detail::EqTypeBase< T, isWordSize >
struct | qi::detail::EqTypeBase< T, true >
struct | qi::detail::EqType< T >
struct | qi::detail::EqType< void >
struct | qi::detail::EqType< double >
struct | qi::detail::EqType< float >
struct | qi::detail::EqType< bool >
struct | qi::detail::EqType< T & >
struct | qi::detail::EqType< T const & >
struct | qi::detail::EqType< T * >
struct | qi::detail::EqFunctionBare< F >
struct | qi::detail::EqMemberFunction< F >
struct | qi::detail::EqFunction< F >
class | qi::detail::AnyReferenceCopy
struct | qi::detail::AssignAnyRef< T >
struct | qi::detail::AssignAnyRef< T * >
struct | qi::InfosKeyMask
class | qi::FunctionTypeInterfaceEq< T, S >
struct | qi::detail::Ident< T >
struct | qi::detail::checkForNonConstRef
struct | qi::detail::remove_constptr< T >
struct | qi::detail::remove_constptr< const T * >
struct | qi::detail::fill_arguments
struct | qi::detail::FunctionPointerSynthetizer< F, Member >
struct | qi::detail::FunctionPointerSynthetizer< F, false >
struct | qi::detail::Pointer< T >
struct | qi::detail::Pointer< T * >

## Namespaces
| qi
| Deprecated in 2.5. Use int8_t from <cstdint>.
| qi::detail

## Macros
#define | _QITYPE_DETAIL_ANYFUNCTIONFACTORY_HXX_
#define | callArg(z, n, _) BOOST_PP_COMMA_IF(n) * (typename boost::remove_reference<P##n>::type*)args[n]
#define | makeCall(n, argstypedecl, argstype, argsdecl, argsues, comma)
#define | STATIC_IF_SAFE static
#define | declType(z, n, _)
#define | callArgBF(z, n, _)
#define | makeCall(n, argstypedecl, argstype, argsdecl, argsues, comma)
#define | makeCall_(n, argstypedecl, argstype, argsdecl, argsues, comma)

## Typedefs
template<typename T >
using | qi::detail::remove_constptr_t = typename remove_constptr< T >::type

## Functions
void | qi::detail::transformRef (void **args, void **out, unsigned int sz, unsigned long refMask)
template<typename T >
void | qi::detail::operator, (AnyReferenceCopy &g, T &&any)
template<typename F >
AnyFunction | qi::detail::makeAnyFunctionBare (F func)
template<typename C , typename R >
AnyReference | qi::detail::bouncer (const AnyReferenceVector &vargs, R(C::*fun)(const AnyArguments &))
template<typename R >
AnyReference | qi::detail::bouncerBF (const AnyReferenceVector &vargs, boost::function< R(const AnyArguments &)> f)
template<typename C , typename R >
AnyFunction | qi::detail::makeAnyFunctionBare (R(C::*fun)(const AnyArguments &))
template<typename R >
AnyFunction | qi::detail::makeAnyFunctionBare (R(*fun)(const AnyArguments &))
template<typename R >
AnyFunction | qi::detail::makeAnyFunctionBare (boost::function< R(const AnyArguments &)> fun)
template<typename F >
AnyFunction | qi::detail::makeAnyFunctionBare (boost::function< F > func)

## Macro Definition Documentation

#define _QITYPE_DETAIL_ANYFUNCTIONFACTORY_HXX_

Definition at line 8 of file anyfunctionfactory.hxx.

#define callArg | ( |  | z,
|  |  | n,
|  |  | _
| ) |  | BOOST_PP_COMMA_IF(n) * (typename boost::remove_reference<P##n>::type*)args[n]

Definition at line 270 of file anyfunctionfactory.hxx.

#define callArgBF | ( |  | z,
|  |  | n,
|  |  | _
| ) |  |

Value:
BOOST_PP_COMMA_IF(n) * (typename boost::remove_reference<P##n>::type*) \
type_##n->ptrFromStorage(&args[n])

Definition at line 294 of file anyfunctionfactory.hxx.

#define declType | ( |  | z,
|  |  | n,
|  |  | _
| ) |  |

Value:
STATIC_IF_SAFE TypeInterface* type_##n = \
typeOf<typename boost::remove_reference<P##n>::type>();
STATIC_IF_SAFE
#define STATIC_IF_SAFE
Definition: anyfunctionfactory.hxx:286

Definition at line 291 of file anyfunctionfactory.hxx.

#define makeCall | ( |  | n,
|  |  | argstypedecl,
|  |  | argstype,
|  |  | argsdecl,
|  |  | argsues,
|  |  | comma
| ) |  |

Value:
template <typename R comma argstypedecl> \
void* makeCall(R (*f)(argstype), void** args) \
{ \
detail::AnyReferenceCopy val; \
val(), f(BOOST_PP_REPEAT(n, callArg, _)); \
return val.rawValue(); \
}
makeCall
#define makeCall(n, argstypedecl, argstype, argsdecl, argsues, comma)
Definition: anyfunctionfactory.hxx:309
callArg
#define callArg(z, n, _)
Definition: anyfunctionfactory.hxx:270

Definition at line 309 of file anyfunctionfactory.hxx.

#define makeCall | ( |  | n,
|  |  | argstypedecl,
|  |  | argstype,
|  |  | argsdecl,
|  |  | argsues,
|  |  | comma
| ) |  |

Value:
template <typename R comma argstypedecl> \
void* makeCall(boost::function<R(argstype)> f, void** args) \
{ \
BOOST_PP_REPEAT(n, declType, _) detail::AnyReferenceCopy val; \
val(), f(BOOST_PP_REPEAT(n, callArgBF, _)); \
return val.rawValue(); \
}
declType
#define declType(z, n, _)
Definition: anyfunctionfactory.hxx:291
callArgBF
#define callArgBF(z, n, _)
Definition: anyfunctionfactory.hxx:294
makeCall
#define makeCall(n, argstypedecl, argstype, argsdecl, argsues, comma)
Definition: anyfunctionfactory.hxx:309

Definition at line 309 of file anyfunctionfactory.hxx.

#define makeCall | ( |  | n,
|  |  | argstypedecl,
|  |  | argstype,
|  |  | argsdecl,
|  |  | argsues,
|  |  | comma
| ) |  |

Value:
template <typename R comma argstypedecl> \
void* makeCall(R (Class::*f)(argstype), void* instance, void** args) \
{ \
detail::AnyReferenceCopy val; \
Class* cptr = *(Class**)instance; \
val(), ((*cptr).*f)(BOOST_PP_REPEAT(n, callArg, _)); \
return val.rawValue(); \
}
makeCall
#define makeCall(n, argstypedecl, argstype, argsdecl, argsues, comma)
Definition: anyfunctionfactory.hxx:309
callArg
#define callArg(z, n, _)
Definition: anyfunctionfactory.hxx:270

Definition at line 309 of file anyfunctionfactory.hxx.

#define makeCall_ | ( |  | n,
|  |  | argstypedecl,
|  |  | argstype,
|  |  | argsdecl,
|  |  | argsues,
|  |  | comma
| ) |  |

Value:
template <typename R comma argstypedecl> \
void* makeCall(R (Class::*f)(argstype), void** args) \
{ \
return makeCall(f, args[0], args + 1); \
}
makeCall
#define makeCall(n, argstypedecl, argstype, argsdecl, argsues, comma)
Definition: anyfunctionfactory.hxx:309

Definition at line 321 of file anyfunctionfactory.hxx.

#define STATIC_IF_SAFE static

Definition at line 286 of file anyfunctionfactory.hxx.