| |
| // (C) Copyright Tobias Schwinger |
| // |
| // Use modification and distribution are subject to the boost Software License, |
| // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). |
| |
| //------------------------------------------------------------------------------ |
| |
| // no include guards, this file is intended for multiple inclusion |
| |
| // input: NDNBOOST_FT_syntax type macro to use |
| // input: NDNBOOST_FT_cc empty or cc specifier |
| // input: NDNBOOST_FT_ell empty or "..." |
| // input: NDNBOOST_FT_cv empty or cv qualifiers |
| // input: NDNBOOST_FT_flags single decimal integer encoding the flags |
| // output: NDNBOOST_FT_n number of component types (arity+1) |
| // output: NDNBOOST_FT_arity current arity |
| // output: NDNBOOST_FT_type macro that expands to the type |
| // output: NDNBOOST_FT_tplargs(p) template arguments with given prefix |
| // output: NDNBOOST_FT_params(p) parameters with given prefix |
| |
| # include <ndnboost/function_types/detail/components_impl/arity20_0.hpp> |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,21> function_arity; |
| typedef mpl::vector22< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,22> function_arity; |
| typedef mpl::vector23< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,23> function_arity; |
| typedef mpl::vector24< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,24> function_arity; |
| typedef mpl::vector25< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,25> function_arity; |
| typedef mpl::vector26< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,26> function_arity; |
| typedef mpl::vector27< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,27> function_arity; |
| typedef mpl::vector28< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,28> function_arity; |
| typedef mpl::vector29< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,29> function_arity; |
| typedef mpl::vector30< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types; |
| }; |
| template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29, typename L> |
| struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> |
| { |
| typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits; |
| typedef constant<NDNBOOST_FT_full_mask> mask; |
| typedef function_types::components<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L> type; |
| typedef components_mpl_sequence_tag tag; |
| typedef mpl::integral_c<std::size_t,30> function_arity; |
| typedef mpl::vector31< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types; |
| }; |
| |