Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:34

0001 
0002 // Copyright Aleksey Gurtovoy 2001-2004
0003 //
0004 // Distributed under the Boost Software License, Version 1.0. 
0005 // (See accompanying file LICENSE_1_0.txt or copy at 
0006 // http://www.boost.org/LICENSE_1_0.txt)
0007 //
0008 
0009 // Preprocessed version of "boost/mpl/inherit.hpp" header
0010 // -- DO NOT modify by hand!
0011 
0012 namespace boost { namespace mpl {
0013 
0014 template<
0015       typename BOOST_MPL_AUX_NA_PARAM(T1)
0016     , typename BOOST_MPL_AUX_NA_PARAM(T2)
0017     >
0018 struct inherit2
0019     : T1, T2
0020 {
0021     typedef inherit2 type;
0022 };
0023 
0024 template< typename T1 >
0025 struct inherit2< T1,empty_base >
0026 {
0027     typedef T1 type;
0028     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
0029 };
0030 
0031 template< typename T2 >
0032 struct inherit2< empty_base,T2 >
0033 {
0034     typedef T2 type;
0035     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
0036 };
0037 
0038 template<>
0039 struct inherit2< empty_base,empty_base >
0040 {
0041     typedef empty_base type;
0042     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
0043 };
0044 
0045 BOOST_MPL_AUX_NA_SPEC(2, inherit2)
0046 
0047 template<
0048       typename T1 = na, typename T2 = na, typename T3 = na
0049     >
0050 struct inherit3
0051     : inherit2<
0052           typename inherit2<
0053               T1, T2
0054             >::type
0055         , T3
0056         >
0057 {
0058 };
0059 
0060 BOOST_MPL_AUX_NA_SPEC(3, inherit3)
0061 
0062 template<
0063       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
0064     >
0065 struct inherit4
0066     : inherit2<
0067           typename inherit3<
0068               T1, T2, T3
0069             >::type
0070         , T4
0071         >
0072 {
0073 };
0074 
0075 BOOST_MPL_AUX_NA_SPEC(4, inherit4)
0076 
0077 template<
0078       typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
0079     , typename T5 = na
0080     >
0081 struct inherit5
0082     : inherit2<
0083           typename inherit4<
0084               T1, T2, T3, T4
0085             >::type
0086         , T5
0087         >
0088 {
0089 };
0090 
0091 BOOST_MPL_AUX_NA_SPEC(5, inherit5)
0092 
0093 /// primary template
0094 
0095 template<
0096       typename T1 = empty_base, typename T2 = empty_base
0097     , typename T3 = empty_base, typename T4 = empty_base
0098     , typename T5 = empty_base
0099     >
0100 struct inherit
0101     : inherit5< T1,T2,T3,T4,T5 >
0102 {
0103 };
0104 
0105 template<>
0106 struct inherit< na,na,na,na,na >
0107 {
0108     template<
0109 
0110           typename T1 = empty_base, typename T2 = empty_base
0111         , typename T3 = empty_base, typename T4 = empty_base
0112         , typename T5 = empty_base
0113 
0114         >
0115     struct apply
0116         : inherit< T1,T2,T3,T4,T5 >
0117     {
0118     };
0119 };
0120 
0121 BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
0122 BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
0123 BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
0124 }}
0125