1 #ifndef GAUDIKERNEL_EXTENDS_H
2 #define GAUDIKERNEL_EXTENDS_H
9 template <
typename BASE,
typename I1>
21 template <
typename A1,
typename A2,
typename A3>
extends1(A1 a1, A2 a2, A3 a3): BASE(a1,a2,a3){}
23 template <
typename A1,
typename A2>
extends1(A1 a1, A2 a2): BASE(a1, a2){}
25 template <
typename A1>
extends1(A1 a1): BASE(a1){}
34 mpl::for_each<interfaces>(matcher);
37 ptr = BASE::i_cast(tid);
48 mpl::for_each<interfaces>(matcher);
50 return BASE::queryInterface(ti,pp);
62 mpl::for_each<interfaces>(appender);
74 template <
typename BASE,
typename I1,
typename I2>
86 template <
typename A1,
typename A2,
typename A3>
extends2(A1 a1, A2 a2, A3 a3): BASE(a1,a2,a3){}
88 template <
typename A1,
typename A2>
extends2(A1 a1, A2 a2): BASE(a1, a2){}
90 template <
typename A1>
extends2(A1 a1): BASE(a1){}
99 mpl::for_each<interfaces>(matcher);
102 ptr = BASE::i_cast(tid);
113 mpl::for_each<interfaces>(matcher);
115 return BASE::queryInterface(ti,pp);
127 mpl::for_each<interfaces>(appender);
139 template <
typename BASE,
typename I1,
typename I2,
typename I3>
151 template <
typename A1,
typename A2,
typename A3>
extends3(A1 a1, A2 a2, A3 a3): BASE(a1,a2,a3){}
153 template <
typename A1,
typename A2>
extends3(A1 a1, A2 a2): BASE(a1, a2){}
164 mpl::for_each<interfaces>(matcher);
167 ptr = BASE::i_cast(tid);
178 mpl::for_each<interfaces>(matcher);
180 return BASE::queryInterface(ti,pp);
192 mpl::for_each<interfaces>(appender);