File indexing completed on 2025-01-18 09:41:11
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
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 BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
0023 };
0024
0025 template< typename T1 >
0026 struct inherit2< T1,empty_base >
0027 {
0028 typedef T1 type;
0029 BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
0030 };
0031
0032 template< typename T2 >
0033 struct inherit2< empty_base,T2 >
0034 {
0035 typedef T2 type;
0036 BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
0037 };
0038
0039 template<>
0040 struct inherit2< empty_base,empty_base >
0041 {
0042 typedef empty_base type;
0043 BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
0044 };
0045
0046 BOOST_MPL_AUX_NA_SPEC(2, inherit2)
0047
0048 template<
0049 typename T1 = na, typename T2 = na, typename T3 = na
0050 >
0051 struct inherit3
0052 : inherit2<
0053 typename inherit2<
0054 T1, T2
0055 >::type
0056 , T3
0057 >
0058 {
0059 BOOST_MPL_AUX_LAMBDA_SUPPORT(
0060 3
0061 , inherit3
0062 , ( T1, T2, T3)
0063 )
0064 };
0065
0066 BOOST_MPL_AUX_NA_SPEC(3, inherit3)
0067
0068 template<
0069 typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
0070 >
0071 struct inherit4
0072 : inherit2<
0073 typename inherit3<
0074 T1, T2, T3
0075 >::type
0076 , T4
0077 >
0078 {
0079 BOOST_MPL_AUX_LAMBDA_SUPPORT(
0080 4
0081 , inherit4
0082 , ( T1, T2, T3, T4)
0083 )
0084 };
0085
0086 BOOST_MPL_AUX_NA_SPEC(4, inherit4)
0087
0088 template<
0089 typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
0090 , typename T5 = na
0091 >
0092 struct inherit5
0093 : inherit2<
0094 typename inherit4<
0095 T1, T2, T3, T4
0096 >::type
0097 , T5
0098 >
0099 {
0100 BOOST_MPL_AUX_LAMBDA_SUPPORT(
0101 5
0102 , inherit5
0103 , ( T1, T2, T3, T4, T5)
0104 )
0105 };
0106
0107 BOOST_MPL_AUX_NA_SPEC(5, inherit5)
0108
0109
0110
0111 template<
0112 typename T1 = empty_base, typename T2 = empty_base
0113 , typename T3 = empty_base, typename T4 = empty_base
0114 , typename T5 = empty_base
0115 >
0116 struct inherit
0117 : inherit5< T1,T2,T3,T4,T5 >
0118 {
0119 };
0120
0121 template<>
0122 struct inherit< na,na,na,na,na >
0123 {
0124 template<
0125
0126 typename T1 = empty_base, typename T2 = empty_base
0127 , typename T3 = empty_base, typename T4 = empty_base
0128 , typename T5 = empty_base
0129
0130 >
0131 struct apply
0132 : inherit< T1,T2,T3,T4,T5 >
0133 {
0134 };
0135 };
0136
0137 BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
0138 BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
0139 BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
0140 }}
0141