ATLAS Offline Software
Interfaces.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef ASGTOOLS_INTERFACES_H
5 #define ASGTOOLS_INTERFACES_H
6 
9 //
10 #if defined(XAOD_STANDALONE)
11 
15 #define DeclareInterfaceID(iface, major, minor) \
16  static_assert(true)
17 
18 
20 template <typename... Interfaces>
21 struct extend_interfaces : virtual public Interfaces... {
22 };
23 
24 
26 template <typename BASE, typename... Interfaces>
27 struct extends : public BASE, virtual public extend_interfaces<Interfaces...> {
28  using base_class = extends;
29  using BASE::BASE;
30 };
31 
32 
34 template <typename... Interfaces>
35 struct implements : virtual public extend_interfaces<Interfaces...> {
36  using base_class = implements<Interfaces...>;
37 };
38 
39 #endif
40 #endif
EL::Detail::ManagerOrder::BASE
@ BASE
the most basic operations, common for all tasks