2 // Copyright Aleksey Gurtovoy 2001-2004
\r
4 // Distributed under the Boost Software License, Version 1.0.
\r
5 // (See accompanying file LICENSE_1_0.txt or copy at
\r
6 // http://www.boost.org/LICENSE_1_0.txt)
\r
9 // Preprocessed version of "boost/mpl/inherit.hpp" header
\r
10 // -- DO NOT modify by hand!
\r
12 namespace boost { namespace mpl {
\r
16 template< bool C1, bool C2 >
\r
17 struct inherit2_impl
\r
19 template< typename Derived, typename T1, typename T2 > struct result_
\r
22 typedef Derived type_;
\r
27 struct inherit2_impl< false,true >
\r
29 template< typename Derived, typename T1, typename T2 > struct result_
\r
37 struct inherit2_impl< true,false >
\r
39 template< typename Derived, typename T1, typename T2 > struct result_
\r
47 struct inherit2_impl< true,true >
\r
49 template< typename Derived, typename T1, typename T2 > struct result_
\r
58 typename BOOST_MPL_AUX_NA_PARAM(T1)
\r
59 , typename BOOST_MPL_AUX_NA_PARAM(T2)
\r
62 : aux::inherit2_impl<
\r
63 is_empty_base<T1>::value
\r
64 , is_empty_base<T2>::value
\r
65 >::template result_< inherit2< T1,T2 >,T1, T2 >
\r
67 typedef typename inherit2::type_ type;
\r
68 BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
\r
71 BOOST_MPL_AUX_NA_SPEC(2, inherit2)
\r
74 typename T1 = na, typename T2 = na, typename T3 = na
\r
84 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
91 BOOST_MPL_AUX_NA_SPEC(3, inherit3)
\r
94 typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
\r
104 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
107 , ( T1, T2, T3, T4)
\r
111 BOOST_MPL_AUX_NA_SPEC(4, inherit4)
\r
114 typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
\r
125 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
128 , ( T1, T2, T3, T4, T5)
\r
132 BOOST_MPL_AUX_NA_SPEC(5, inherit5)
\r
134 /// primary template
\r
137 typename T1 = empty_base, typename T2 = empty_base
\r
138 , typename T3 = empty_base, typename T4 = empty_base
\r
139 , typename T5 = empty_base
\r
142 : inherit5< T1,T2,T3,T4,T5 >
\r
147 struct inherit< na,na,na,na,na >
\r
151 typename T1 = empty_base, typename T2 = empty_base
\r
152 , typename T3 = empty_base, typename T4 = empty_base
\r
153 , typename T5 = empty_base
\r
157 : inherit< T1,T2,T3,T4,T5 >
\r
162 BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
\r
163 BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
\r
164 BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
\r