Gaudi Framework, version v23r9

Home   Generated: Thu Jul 18 2013
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
extend_interfaces.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_EXTEND_INTERFACES_H
2 #define GAUDIKERNEL_EXTEND_INTERFACES_H
3 
5 
6 // -----------------------------------------------------------------------------
7 // Interface extension classes
8 // -----------------------------------------------------------------------------
12 template <typename I1>
13 struct GAUDI_API extend_interfaces1: virtual public I1 {
14 #ifndef __GCCXML__
15 
16  typedef typename I1::iid::iids::type ext_iids;
17 #endif
18 
19  virtual ~extend_interfaces1() {}
20 };
21 
25 template <typename I1, typename I2>
26 struct GAUDI_API extend_interfaces2: virtual public I1, virtual public I2 {
27 #ifndef __GCCXML__
28 
29  typedef typename mpl::fold<
30  typename I1::iid::iids::type,
31  typename I2::iid::iids::type,
32  mpl::insert<mpl::_1,mpl::_2>
34 #endif
35 
36  virtual ~extend_interfaces2() {}
37 };
38 
42 template <typename I1, typename I2, typename I3>
43 struct GAUDI_API extend_interfaces3: virtual public I1,
44  virtual public I2,
45  virtual public I3 {
46 #ifndef __GCCXML__
47 
48  typedef typename mpl::fold<
49  typename I1::iid::iids::type,
50  typename mpl::fold<
51  typename I2::iid::iids::type,
52  typename I3::iid::iids::type,
53  mpl::insert<mpl::_1,mpl::_2>
54  >::type,
55  mpl::insert<mpl::_1,mpl::_2>
57 #endif
58 
59  virtual ~extend_interfaces3() {}
60 };
61 
65 template <typename I1, typename I2, typename I3, typename I4>
66 struct GAUDI_API extend_interfaces4: virtual public I1,
67  virtual public I2,
68  virtual public I3,
69  virtual public I4 {
70 #ifndef __GCCXML__
71 
72  typedef typename mpl::fold<
73  typename I1::iid::iids::type,
74  typename mpl::fold<
75  typename I2::iid::iids::type,
76  typename mpl::fold<
77  typename I3::iid::iids::type,
78  typename I4::iid::iids::type,
79  mpl::insert<mpl::_1,mpl::_2>
80  >::type,
81  mpl::insert<mpl::_1,mpl::_2>
82  >::type,
83  mpl::insert<mpl::_1,mpl::_2>
85 #endif
86 
87  virtual ~extend_interfaces4() {}
88 };
89 
90 
91 #endif

Generated at Thu Jul 18 2013 12:18:02 for Gaudi Framework, version v23r9 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004