File indexing completed on 2025-01-18 09:41:34
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 };
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
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