| The Gaudi Framework v27r1

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

- File List
- File Members

extend_interfaces.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_EXTEND_INTERFACES_H
2 #define GAUDIKERNEL_EXTEND_INTERFACES_H
3
4 #include "GaudiKernel/IInterface.h"
5
6 // -----------------------------------------------------------------------------
7 // Interface extension classes
8 // -----------------------------------------------------------------------------
10 template <typename... Interfaces>
11 struct GAUDI_API extend_interfaces: virtual public Interfaces...
12 {
14 using ext_iids = typename Gaudi::interface_list_cat<typename Interfaces::ext_iids...>::type;
16 ~extend_interfaces() override = default;
17 };
18
19 template <typename I1> using extend_interfaces1 = extend_interfaces<I1>;
20 template <typename I1,
21 typename I2> using extend_interfaces2 = extend_interfaces<I1, I2>;
22 template <typename I1,
23 typename I2,
24 typename I3> using extend_interfaces3 = extend_interfaces<I1, I2, I3>;
25 template <typename I1,
26 typename I2,
27 typename I3,
28 typename I4> using extend_interfaces4 = extend_interfaces<I1, I2, I3, I4>;
29
30 #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:14
Gaudi::interface_list_cat
Definition: IInterface.h:130
gaudirun.type
string type
Definition: gaudirun.py:151
extend_interfaces
Base class to be used to extend an interface.
Definition: extend_interfaces.h:11
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:107
IInterface.h