| The Gaudi Framework v29r0 (ff2e7097)

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

- Namespace List
- Namespace Members

Classes | Functions
Gaudi::detail2 Namespace Reference

## Classes
struct | is_reference_wrapper
struct | is_reference_wrapper< std::reference_wrapper< U > >

## Functions
template<class Base , class T , class Derived , class... Args>
auto | INVOKE (T Base::*pmf, Derived &&ref, Args &&...args) noexcept( noexcept((std::forward< Derived >(ref).*pmf)(std::forward< Args >(args)...))) -> std::enable_if_t< std::is_function< T >::value &&std::is_base_of< Base, std::decay_t< Derived >>::value, decltype((std::forward< Derived >(ref).*pmf)(std::forward< Args >(args)...))>
template<class Base , class T , class RefWrap , class... Args>
auto | INVOKE (T Base::*pmf, RefWrap &&ref, Args &&...args) noexcept(noexcept((ref.get().*pmf)(std::forward< Args >(args)...))) -> std::enable_if_t< std::is_function< T >::value &&is_reference_wrapper< std::decay_t< RefWrap >>::value, decltype((ref.get().*pmf)(std::forward< Args >(args)...))>
template<class Base , class T , class Pointer , class... Args>
auto | INVOKE (T Base::*pmf, Pointer &&ptr, Args &&...args) noexcept( noexcept(((*std::forward< Pointer >(ptr)).*pmf)(std::forward< Args >(args)...))) -> std::enable_if_t< std::is_function< T >::value &&!is_reference_wrapper< std::decay_t< Pointer >>::value && !std::is_base_of< Base, std::decay_t< Pointer >>::value, decltype(((*std::forward< Pointer >(ptr)).*pmf)(std::forward< Args >(args)...))>
template<class Base , class T , class Derived >
auto | INVOKE (T Base::*pmd, Derived &&ref) noexcept(noexcept(std::forward< Derived >(ref).*pmd)) -> std::enable_if_t<!std::is_function< T >::value &&std::is_base_of< Base, std::decay_t< Derived >>::value, decltype(std::forward< Derived >(ref).*pmd)>
template<class Base , class T , class RefWrap >
auto | INVOKE (T Base::*pmd, RefWrap &&ref) noexcept(noexcept(ref.get().*pmd)) -> std::enable_if_t<!std::is_function< T >::value &&is_reference_wrapper< std::decay_t< RefWrap >>::value, decltype(ref.get().*pmd)>
template<class Base , class T , class Pointer >
auto | INVOKE (T Base::*pmd, Pointer &&ptr) noexcept(noexcept((*std::forward< Pointer >(ptr)).*pmd)) -> std::enable_if_t<!std::is_function< T >::value &&!is_reference_wrapper< std::decay_t< Pointer >>::value && !std::is_base_of< Base, std::decay_t< Pointer >>::value, decltype((*std::forward< Pointer >(ptr)).*pmd)>
template<class F , class... Args>
auto | INVOKE (F &&f, Args &&...args) noexcept(noexcept(std::forward< F >(f)(std::forward< Args >(args)...))) -> std::enable_if_t<!std::is_member_pointer< std::decay_t< F >>::value, decltype(std::forward< F >(f)(std::forward< Args >(args)...))>

## Function Documentation

template<class Base , class T , class Derived , class... Args>

auto Gaudi::detail2::INVOKE | ( | T Base::* | pmf,
|  | Derived && | ref,
|  | Args &&... | args
| ) |  | -> std::enable_if_t<std::is_function<T>::value && std::is_base_of<Base, std::decay_t<Derived>>::value, decltype( ( std::forward<Derived>( ref ).*pmf )( std::forward<Args>( args )... ) )>
| noexcept

Definition at line 20 of file invoke.h.

24 {
25 return ( std::forward<Derived>( ref ).*pmf )( std::forward<Args>( args )... );
26 }
gaudirun.args
args
Definition: gaudirun.py:244
compareRootHistos.ref
string ref
Definition: compareRootHistos.py:14
template<class Base , class T , class RefWrap , class... Args>

auto Gaudi::detail2::INVOKE | ( | T Base::* | pmf,
|  | RefWrap && | ref,
|  | Args &&... | args
| ) |  | -> std::enable_if_t<std::is_function<T>::value && is_reference_wrapper<std::decay_t<RefWrap>>::value, decltype( ( ref.get().*pmf )( std::forward<Args>( args )... ) )>
| noexcept

Definition at line 29 of file invoke.h.

34 {
35 return ( ref.get().*pmf )( std::forward<Args>( args )... );
36 }
gaudirun.args
args
Definition: gaudirun.py:244
compareRootHistos.ref
string ref
Definition: compareRootHistos.py:14
template<class Base , class T , class Pointer , class... Args>

auto Gaudi::detail2::INVOKE | ( | T Base::* | pmf,
|  | Pointer && | ptr,
|  | Args &&... | args
| ) |  | -> std::enable_if_t<std::is_function<T>::value && !is_reference_wrapper<std::decay_t<Pointer>>::value && !std::is_base_of<Base, std::decay_t<Pointer>>::value, decltype( ( ( *std::forward<Pointer>( ptr ) ).*pmf )( std::forward<Args>( args )... ) )>
| noexcept

Definition at line 39 of file invoke.h.

44 {
45 return ( ( *std::forward<Pointer>( ptr ) ).*pmf )( std::forward<Args>( args )... );
46 }
gaudirun.args
args
Definition: gaudirun.py:244
template<class Base , class T , class Derived >

auto Gaudi::detail2::INVOKE | ( | T Base::* | pmd,
|  | Derived && | ref
| ) |  | -> std::enable_if_t<!std::is_function<T>::value && std::is_base_of<Base, std::decay_t<Derived>>::value, decltype( std::forward<Derived>( ref ).*pmd )>
| noexcept

Definition at line 49 of file invoke.h.

52 {
53 return std::forward<Derived>( ref ).*pmd;
54 }
compareRootHistos.ref
string ref
Definition: compareRootHistos.py:14
template<class Base , class T , class RefWrap >

auto Gaudi::detail2::INVOKE | ( | T Base::* | pmd,
|  | RefWrap && | ref
| ) |  | -> std::enable_if_t<!std::is_function<T>::value && is_reference_wrapper<std::decay_t<RefWrap>>::value, decltype( ref.get().*pmd )>
| noexcept

Definition at line 57 of file invoke.h.

60 {
61 return ref.get().*pmd;
62 }
compareRootHistos.ref
string ref
Definition: compareRootHistos.py:14
template<class Base , class T , class Pointer >

auto Gaudi::detail2::INVOKE | ( | T Base::* | pmd,
|  | Pointer && | ptr
| ) |  | -> std::enable_if_t<!std::is_function<T>::value && !is_reference_wrapper<std::decay_t<Pointer>>::value && !std::is_base_of<Base, std::decay_t<Pointer>>::value, decltype( ( *std::forward<Pointer>( ptr ) ).*pmd )>
| noexcept

Definition at line 65 of file invoke.h.

69 {
70 return ( *std::forward<Pointer>( ptr ) ).*pmd;
71 }
template<class F , class... Args>

auto Gaudi::detail2::INVOKE | ( | F && | f,
|  | Args &&... | args
| ) |  | -> std::enable_if_t<!std::is_member_pointer<std::decay_t<F>>::value, decltype( std::forward<F>( f )( std::forward<Args>( args )... ) )>
| noexcept

Definition at line 74 of file invoke.h.

77 {
78 return std::forward<F>( f )( std::forward<Args>( args )... );
79 }
gaudirun.args
args
Definition: gaudirun.py:244