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)
8 #if !defined(BOOST_PP_IS_ITERATING)
12 #ifndef BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
13 #define BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
15 #include "boost/type_traits/detail/yes_no_type.hpp"
16 #include "boost/type_traits/config.hpp"
18 #if defined(BOOST_TT_PREPROCESSING_MODE)
19 # include "boost/preprocessor/iterate.hpp"
20 # include "boost/preprocessor/enum_params.hpp"
21 # include "boost/preprocessor/comma_if.hpp"
26 namespace is_function_ref_tester_
{
29 boost::type_traits::no_type BOOST_TT_DECL
is_function_ref_tester(T
& ...);
31 #if !defined(BOOST_TT_PREPROCESSING_MODE)
32 // preprocessor-generated part, don't edit by hand!
35 boost::type_traits::yes_type
is_function_ref_tester(R (&)(), int);
37 template <class R
,class T0
>
38 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
), int);
40 template <class R
,class T0
,class T1
>
41 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
), int);
43 template <class R
,class T0
,class T1
,class T2
>
44 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
), int);
46 template <class R
,class T0
,class T1
,class T2
,class T3
>
47 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
), int);
49 template <class R
,class T0
,class T1
,class T2
,class T3
,class T4
>
50 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
), int);
52 template <class R
,class T0
,class T1
,class T2
,class T3
,class T4
,class T5
>
53 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
), int);
55 template <class R
,class T0
,class T1
,class T2
,class T3
,class T4
,class T5
,class T6
>
56 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
), int);
58 template <class R
,class T0
,class T1
,class T2
,class T3
,class T4
,class T5
,class T6
,class T7
>
59 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
,T7
), int);
61 template <class R
,class T0
,class T1
,class T2
,class T3
,class T4
,class T5
,class T6
,class T7
,class T8
>
62 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
,T7
,T8
), int);
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 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
,T7
,T8
,T9
), int);
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 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
,T7
,T8
,T9
,T10
), int);
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 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
,T7
,T8
,T9
,T10
,T11
), int);
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 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
,T7
,T8
,T9
,T10
,T11
,T12
), int);
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 boost::type_traits::yes_type
is_function_ref_tester(R (&)(T0
,T1
,T2
,T3
,T4
,T5
,T6
,T7
,T8
,T9
,T10
,T11
,T12
,T13
), int);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
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 boost::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);
114 #define BOOST_PP_ITERATION_PARAMS_1 \
115 (3, (0, 25, "boost/type_traits/detail/is_function_ref_tester.hpp"))
116 #include BOOST_PP_ITERATE()
118 #endif // BOOST_TT_PREPROCESSING_MODE
120 } // namespace detail
121 } // namespace python
124 #endif // BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
129 #define i BOOST_PP_FRAME_ITERATION(1)
131 template <class R
BOOST_PP_COMMA_IF(i
) BOOST_PP_ENUM_PARAMS(i
,class T
) >
132 boost::type_traits::yes_type
is_function_ref_tester(R (&)(BOOST_PP_ENUM_PARAMS(i
,T
)), int);
135 #endif // BOOST_PP_IS_ITERATING