| The Gaudi Framework v32r1 (f65d50dc)

extend_interfaces.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_EXTEND_INTERFACES_H
2 #define GAUDIKERNEL_EXTEND_INTERFACES_H
3
4 template <typename... Interfaces>
5 struct extend_interfaces;
6
7 #include "GaudiKernel/IInterface.h"
8
9 // -----------------------------------------------------------------------------
10 // Interface extension classes
11 // -----------------------------------------------------------------------------
13 template <typename... Interfaces>
14 struct GAUDI_API extend_interfaces : virtual public Interfaces... {
16 using ext_iids = typename Gaudi::interface_list_cat<typename Interfaces::ext_iids...>::type;
17 };
18
19 template <typename I1>
20 using extend_interfaces1 = extend_interfaces<I1>;
21 template <typename I1, typename I2>
22 using extend_interfaces2 = extend_interfaces<I1, I2>;
23 template <typename I1, typename I2, typename I3>
24 using extend_interfaces3 = extend_interfaces<I1, I2, I3>;
25 template <typename I1, typename I2, typename I3, typename I4>
26 using extend_interfaces4 = extend_interfaces<I1, I2, I3, I4>;
27
28 #endif
extend_interfaces< IService, IChronoSvc, IStatSvc >::ext_iids
typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type ext_iids
take union of the ext_iids of all Interfaces...
Definition: extend_interfaces.h:16
Gaudi::interface_list_cat
Definition: IInterface.h:127
extend_interfaces
Base class to be used to extend an interface.
Definition: extend_interfaces.h:5
gaudirun.type
type
Definition: gaudirun.py:142
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:71
IInterface.h