Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 1 | |
| 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, |
| 3 | // Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. |
| 4 | // Distributed under the Boost Software License, Version 1.0. (See |
| 5 | // accompanying file LICENSE_1_0.txt or copy at |
| 6 | // http://www.boost.org/LICENSE_1_0.txt) |
| 7 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 8 | #if !defined(NDNBOOST_PP_IS_ITERATING) |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 9 | |
| 10 | ///// header body |
| 11 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 12 | #ifndef NDNBOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED |
| 13 | #define NDNBOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 14 | |
| 15 | #include "ndnboost/type_traits/detail/yes_no_type.hpp" |
| 16 | #include "ndnboost/type_traits/config.hpp" |
| 17 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 18 | #if defined(NDNBOOST_TT_PREPROCESSING_MODE) |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 19 | # include "ndnboost/preprocessor/iterate.hpp" |
| 20 | # include "ndnboost/preprocessor/enum_params.hpp" |
| 21 | # include "ndnboost/preprocessor/comma_if.hpp" |
| 22 | #endif |
| 23 | |
| 24 | namespace ndnboost { |
| 25 | namespace detail { |
| 26 | namespace is_function_ref_tester_ { |
| 27 | |
| 28 | template <class T> |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 29 | ndnboost::type_traits::no_type NDNBOOST_TT_DECL is_function_ref_tester(T& ...); |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 30 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 31 | #if !defined(NDNBOOST_TT_PREPROCESSING_MODE) |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 32 | // preprocessor-generated part, don't edit by hand! |
| 33 | |
| 34 | template <class R> |
| 35 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(), int); |
| 36 | |
| 37 | template <class R,class T0 > |
| 38 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0), int); |
| 39 | |
| 40 | template <class R,class T0,class T1 > |
| 41 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1), int); |
| 42 | |
| 43 | template <class R,class T0,class T1,class T2 > |
| 44 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2), int); |
| 45 | |
| 46 | template <class R,class T0,class T1,class T2,class T3 > |
| 47 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3), int); |
| 48 | |
| 49 | template <class R,class T0,class T1,class T2,class T3,class T4 > |
| 50 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4), int); |
| 51 | |
| 52 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5 > |
| 53 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5), int); |
| 54 | |
| 55 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6 > |
| 56 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6), int); |
| 57 | |
| 58 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7 > |
| 59 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7), int); |
| 60 | |
| 61 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8 > |
| 62 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8), int); |
| 63 | |
| 64 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9 > |
| 65 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9), int); |
| 66 | |
| 67 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10 > |
| 68 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10), int); |
| 69 | |
| 70 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11 > |
| 71 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11), int); |
| 72 | |
| 73 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12 > |
| 74 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12), int); |
| 75 | |
| 76 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13 > |
| 77 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13), int); |
| 78 | |
| 79 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14 > |
| 80 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14), int); |
| 81 | |
| 82 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15 > |
| 83 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15), int); |
| 84 | |
| 85 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16 > |
| 86 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16), int); |
| 87 | |
| 88 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17 > |
| 89 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17), int); |
| 90 | |
| 91 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18 > |
| 92 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18), int); |
| 93 | |
| 94 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19 > |
| 95 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19), int); |
| 96 | |
| 97 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20 > |
| 98 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20), int); |
| 99 | |
| 100 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21 > |
| 101 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21), int); |
| 102 | |
| 103 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22 > |
| 104 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22), int); |
| 105 | |
| 106 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22,class T23 > |
| 107 | ndnboost::type_traits::yes_type is_function_ref_tester(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), int); |
| 108 | |
| 109 | template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22,class T23,class T24 > |
| 110 | ndnboost::type_traits::yes_type is_function_ref_tester(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), int); |
| 111 | |
| 112 | #else |
| 113 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 114 | #define NDNBOOST_PP_ITERATION_PARAMS_1 \ |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 115 | (3, (0, 25, "ndnboost/detail/is_function_ref_tester.hpp")) |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 116 | #include NDNBOOST_PP_ITERATE() |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 117 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 118 | #endif // NDNBOOST_TT_PREPROCESSING_MODE |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 119 | |
| 120 | } // namespace detail |
| 121 | } // namespace python |
| 122 | } // namespace ndnboost |
| 123 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 124 | #endif // NDNBOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 125 | |
| 126 | ///// iteration |
| 127 | |
| 128 | #else |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 129 | #define i NDNBOOST_PP_FRAME_ITERATION(1) |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 130 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 131 | template <class R NDNBOOST_PP_COMMA_IF(i) NDNBOOST_PP_ENUM_PARAMS(i,class T) > |
| 132 | ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(NDNBOOST_PP_ENUM_PARAMS(i,T)), int); |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 133 | |
| 134 | #undef i |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 135 | #endif // NDNBOOST_PP_IS_ITERATING |
Jeff Thompson | ef2d5a4 | 2013-08-22 19:09:24 -0700 | [diff] [blame] | 136 | |