Go to the documentation of this file.
17 #define GAUDI_FUNCTIONAL_TOOL_BINDER_USES_CREATE
21 template <
typename Signature,
typename Traits>
24 template <
typename IFace,
typename... Args,
typename Traits>
26 :
public extends<details::BaseClass_t<Traits, AlgTool>, Gaudi::Interface::Bind::IBinder<IFace>> {
33 std::index_sequence<I...> )
52 [&](
auto const&... arg ) {
54 return std::invoke( m_creator,
this,
get( arg, *
this,
ctx )... );
59 template <std::
size_t N = 0>
60 decltype(
auto ) inputLocation()
const {
62 return getKey( std::get<N>( m_handles ) );
65 decltype(
auto ) inputLocation()
const {
71 template <
typename BoundInstance,
typename Self>
73 static_assert( std::is_base_of_v<ToolBinder, Self> );
74 return +[](
void const* ptr,
const Args&...
args ) {
76 static_cast<std::add_const_t<Self>*
>( ptr ),
args... };
82 template <
typename Signature,
typename Traits_ = Traits::use_<Traits::BaseClass_t<AlgTool>>>
Gaudi::cpp17::detected_or_t< detail2::DefaultInputHandle< T >, detail2::InputHandle_t, Tr, T > InputHandle_t
get
decorate the vector of properties
auto get(const Handle &handle, const Algo &, const EventContext &) -> decltype(details::deref(handle.get()))
T forward_as_tuple(T... args)
Base class used to extend a class implementing other interfaces.
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
decltype(get_values_helper< Value >(std::make_index_sequence< N >())) RepeatValues_
Gaudi::cpp17::detected_or_t< Base, detail2::BaseClass_t, Tr > BaseClass_t
auto getKey(const Handle &h) -> decltype(h.objKey())