Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 1 | |
| 2 | // (C) Copyright Tobias Schwinger |
| 3 | // |
| 4 | // Use modification and distribution are subject to the boost Software License, |
| 5 | // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). |
| 6 | |
| 7 | //------------------------------------------------------------------------------ |
| 8 | |
| 9 | // no include guards, this file is intended for multiple inclusion |
| 10 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 11 | // input: NDNBOOST_FT_syntax type macro to use |
| 12 | // input: NDNBOOST_FT_cc empty or cc specifier |
| 13 | // input: NDNBOOST_FT_ell empty or "..." |
| 14 | // input: NDNBOOST_FT_cv empty or cv qualifiers |
| 15 | // input: NDNBOOST_FT_flags single decimal integer encoding the flags |
| 16 | // output: NDNBOOST_FT_n number of component types (arity+1) |
| 17 | // output: NDNBOOST_FT_arity current arity |
| 18 | // output: NDNBOOST_FT_type macro that expands to the type |
| 19 | // output: NDNBOOST_FT_tplargs(p) template arguments with given prefix |
| 20 | // output: NDNBOOST_FT_params(p) parameters with given prefix |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 21 | |
| 22 | template< typename R , typename T0 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 23 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1> ::type |
| 24 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) ( NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 25 | template< typename R , typename T0 , typename T1 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 26 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2> ::type |
| 27 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 28 | template< typename R , typename T0 , typename T1 , typename T2 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 29 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3> ::type |
| 30 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 31 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 32 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4> ::type |
| 33 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 34 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 35 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5> ::type |
| 36 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 37 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 38 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6> ::type |
| 39 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 40 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 41 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7> ::type |
| 42 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 43 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 44 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8> ::type |
| 45 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 46 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 47 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9> ::type |
| 48 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 49 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 50 | typename encode_charr<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10> ::type |
| 51 | classifier_impl(NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 NDNBOOST_FT_ell) NDNBOOST_FT_cv); |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 52 | |