]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/type_traits/detail/is_function_ptr_tester.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / type_traits / detail / is_function_ptr_tester.hpp
CommitLineData
7c673cae
FG
1
2// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
3// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
4// Use, modification and distribution are subject to the Boost Software License,
5// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
6// http://www.boost.org/LICENSE_1_0.txt).
7//
8// See http://www.boost.org/libs/type_traits for most recent version including documentation.
9
10#if !defined(BOOST_PP_IS_ITERATING)
11
12///// header body
13
14#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
15#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
16
17#include <boost/type_traits/detail/yes_no_type.hpp>
18
19#if defined(BOOST_TT_PREPROCESSING_MODE)
20//
21// Hide include dependencies from analysers since they're
22// only require in maintenance mode:
23//
24#define PP1 <boost/preprocessor/iterate.hpp>
25#define PP2 <boost/preprocessor/enum_params.hpp>
26#define PP3 <boost/preprocessor/comma_if.hpp>
27#include PP1
28#include PP2
29#include PP3
30#undef PP1
31#undef PP2
32#undef PP3
33#endif
34
35namespace boost {
36namespace type_traits {
37
38// Note it is acceptable to use ellipsis here, since the argument will
39// always be a pointer type of some sort (JM 2005/06/04):
40no_type BOOST_TT_DECL is_function_ptr_tester(...);
41
42#if !defined(BOOST_TT_PREPROCESSING_MODE)
43// pre-processed code, don't edit, try GNU cpp with
44// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
45
46template <class R >
92f5a8d4
TL
47yes_type is_function_ptr_tester(R(*)());
48#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
7c673cae 49template <class R >
92f5a8d4
TL
50yes_type is_function_ptr_tester(R(*)(...));
51#endif
7c673cae
FG
52#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
53template <class R >
92f5a8d4
TL
54yes_type is_function_ptr_tester(R(__stdcall*)());
55#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
56template <class R >
57yes_type is_function_ptr_tester(R(__vectorcall*)());
58#endif
7c673cae
FG
59#ifndef _MANAGED
60template <class R >
92f5a8d4 61yes_type is_function_ptr_tester(R(__fastcall*)());
7c673cae
FG
62#endif
63template <class R >
92f5a8d4
TL
64yes_type is_function_ptr_tester(R(__cdecl*)());
65#endif
66template <class R, class T0 >
67yes_type is_function_ptr_tester(R(*)(T0));
68#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
69template <class R, class T0 >
70yes_type is_function_ptr_tester(R(*)(T0 ...));
7c673cae 71#endif
7c673cae 72#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
73template <class R, class T0 >
74yes_type is_function_ptr_tester(R(__stdcall*)(T0));
75#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
76template <class R, class T0 >
77yes_type is_function_ptr_tester(R(__vectorcall*)(T0));
78#endif
7c673cae 79#ifndef _MANAGED
92f5a8d4
TL
80template <class R, class T0 >
81yes_type is_function_ptr_tester(R(__fastcall*)(T0));
82#endif
83template <class R, class T0 >
84yes_type is_function_ptr_tester(R(__cdecl*)(T0));
7c673cae 85#endif
92f5a8d4
TL
86template <class R, class T0, class T1 >
87yes_type is_function_ptr_tester(R(*)(T0, T1));
88#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
89template <class R, class T0, class T1 >
90yes_type is_function_ptr_tester(R(*)(T0, T1 ...));
7c673cae 91#endif
7c673cae 92#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
93template <class R, class T0, class T1 >
94yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1));
95#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
96template <class R, class T0, class T1 >
97yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1));
98#endif
7c673cae 99#ifndef _MANAGED
92f5a8d4
TL
100template <class R, class T0, class T1 >
101yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1));
7c673cae 102#endif
92f5a8d4
TL
103template <class R, class T0, class T1 >
104yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1));
105#endif
106template <class R, class T0, class T1, class T2 >
107yes_type is_function_ptr_tester(R(*)(T0, T1, T2));
108#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
109template <class R, class T0, class T1, class T2 >
110yes_type is_function_ptr_tester(R(*)(T0, T1, T2 ...));
7c673cae 111#endif
7c673cae 112#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
113template <class R, class T0, class T1, class T2 >
114yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2));
115#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
116template <class R, class T0, class T1, class T2 >
117yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2));
118#endif
7c673cae 119#ifndef _MANAGED
92f5a8d4
TL
120template <class R, class T0, class T1, class T2 >
121yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2));
7c673cae 122#endif
92f5a8d4
TL
123template <class R, class T0, class T1, class T2 >
124yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2));
125#endif
126template <class R, class T0, class T1, class T2, class T3 >
127yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3));
128#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
129template <class R, class T0, class T1, class T2, class T3 >
130yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3 ...));
7c673cae 131#endif
7c673cae 132#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
133template <class R, class T0, class T1, class T2, class T3 >
134yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3));
135#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
136template <class R, class T0, class T1, class T2, class T3 >
137yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3));
138#endif
7c673cae 139#ifndef _MANAGED
92f5a8d4
TL
140template <class R, class T0, class T1, class T2, class T3 >
141yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3));
7c673cae 142#endif
92f5a8d4
TL
143template <class R, class T0, class T1, class T2, class T3 >
144yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3));
145#endif
146template <class R, class T0, class T1, class T2, class T3, class T4 >
147yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4));
148#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
149template <class R, class T0, class T1, class T2, class T3, class T4 >
150yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4 ...));
7c673cae 151#endif
7c673cae 152#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
153template <class R, class T0, class T1, class T2, class T3, class T4 >
154yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4));
155#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
156template <class R, class T0, class T1, class T2, class T3, class T4 >
157yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4));
158#endif
7c673cae 159#ifndef _MANAGED
92f5a8d4
TL
160template <class R, class T0, class T1, class T2, class T3, class T4 >
161yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4));
162#endif
163template <class R, class T0, class T1, class T2, class T3, class T4 >
164yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4));
7c673cae 165#endif
92f5a8d4
TL
166template <class R, class T0, class T1, class T2, class T3, class T4, class T5 >
167yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5));
168#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
169template <class R, class T0, class T1, class T2, class T3, class T4, class T5 >
170yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5 ...));
7c673cae 171#endif
7c673cae 172#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
173template <class R, class T0, class T1, class T2, class T3, class T4, class T5 >
174yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5));
175#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
176template <class R, class T0, class T1, class T2, class T3, class T4, class T5 >
177yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5));
178#endif
7c673cae 179#ifndef _MANAGED
92f5a8d4
TL
180template <class R, class T0, class T1, class T2, class T3, class T4, class T5 >
181yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5));
182#endif
183template <class R, class T0, class T1, class T2, class T3, class T4, class T5 >
184yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5));
7c673cae 185#endif
92f5a8d4
TL
186template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6 >
187yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6));
188#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
189template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6 >
190yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6 ...));
7c673cae 191#endif
7c673cae 192#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
193template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6 >
194yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6));
195#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
196template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6 >
197yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6));
198#endif
7c673cae 199#ifndef _MANAGED
92f5a8d4
TL
200template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6 >
201yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6));
202#endif
203template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6 >
204yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6));
7c673cae 205#endif
92f5a8d4
TL
206template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7 >
207yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7));
208#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
209template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7 >
210yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7 ...));
7c673cae 211#endif
7c673cae 212#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
213template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7 >
214yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7));
215#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
216template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7 >
217yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7));
218#endif
7c673cae 219#ifndef _MANAGED
92f5a8d4
TL
220template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7 >
221yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7));
222#endif
223template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7 >
224yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7));
7c673cae 225#endif
92f5a8d4
TL
226template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8 >
227yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8));
228#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
229template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8 >
230yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8 ...));
7c673cae 231#endif
7c673cae 232#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
233template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8 >
234yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8));
235#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
236template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8 >
237yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8));
238#endif
7c673cae 239#ifndef _MANAGED
92f5a8d4
TL
240template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8 >
241yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8));
7c673cae 242#endif
92f5a8d4
TL
243template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8 >
244yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8));
245#endif
246template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 >
247yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9));
248#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
249template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 >
250yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 ...));
7c673cae 251#endif
7c673cae 252#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
253template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 >
254yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9));
255#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
256template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 >
257yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9));
258#endif
7c673cae 259#ifndef _MANAGED
92f5a8d4
TL
260template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 >
261yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9));
262#endif
263template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 >
264yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9));
7c673cae 265#endif
92f5a8d4
TL
266template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10 >
267yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10));
268#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
269template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10 >
270yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 ...));
7c673cae 271#endif
7c673cae 272#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
273template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10 >
274yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10));
275#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
276template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10 >
277yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10));
278#endif
7c673cae 279#ifndef _MANAGED
92f5a8d4
TL
280template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10 >
281yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10));
282#endif
283template <class R, class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10 >
284yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10));
7c673cae 285#endif
92f5a8d4
TL
286template <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 >
287yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11));
288#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
289template <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 >
290yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 ...));
7c673cae 291#endif
7c673cae 292#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
293template <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 >
294yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11));
295#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
296template <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 >
297yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11));
298#endif
7c673cae 299#ifndef _MANAGED
92f5a8d4
TL
300template <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 >
301yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11));
7c673cae 302#endif
92f5a8d4
TL
303template <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 >
304yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11));
305#endif
306template <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 >
307yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12));
308#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
309template <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 >
310yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 ...));
7c673cae 311#endif
7c673cae 312#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
313template <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 >
314yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12));
315#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
316template <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 >
317yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12));
318#endif
7c673cae 319#ifndef _MANAGED
92f5a8d4
TL
320template <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 >
321yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12));
7c673cae 322#endif
92f5a8d4
TL
323template <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 >
324yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12));
325#endif
326template <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 >
327yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13));
328#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
329template <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 >
330yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 ...));
7c673cae 331#endif
7c673cae 332#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
333template <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 >
334yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13));
335#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
336template <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 >
337yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13));
338#endif
7c673cae 339#ifndef _MANAGED
92f5a8d4
TL
340template <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 >
341yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13));
7c673cae 342#endif
92f5a8d4
TL
343template <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 >
344yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13));
345#endif
346template <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 >
347yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14));
348#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
349template <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 >
350yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 ...));
7c673cae 351#endif
7c673cae 352#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
353template <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 >
354yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14));
355#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
356template <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 >
357yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14));
358#endif
7c673cae 359#ifndef _MANAGED
92f5a8d4
TL
360template <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 >
361yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14));
362#endif
363template <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 >
364yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14));
7c673cae 365#endif
92f5a8d4
TL
366template <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 >
367yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15));
368#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
369template <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 >
370yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 ...));
7c673cae 371#endif
7c673cae 372#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
373template <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 >
374yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15));
375#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
376template <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 >
377yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15));
378#endif
7c673cae 379#ifndef _MANAGED
92f5a8d4
TL
380template <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 >
381yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15));
382#endif
383template <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 >
384yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15));
7c673cae 385#endif
92f5a8d4
TL
386template <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 >
387yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16));
388#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
389template <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 >
390yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 ...));
7c673cae 391#endif
7c673cae 392#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
393template <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 >
394yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16));
395#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
396template <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 >
397yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16));
398#endif
7c673cae 399#ifndef _MANAGED
92f5a8d4
TL
400template <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 >
401yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16));
402#endif
403template <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 >
404yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16));
7c673cae 405#endif
92f5a8d4
TL
406template <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 >
407yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17));
408#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
409template <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 >
410yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 ...));
7c673cae 411#endif
7c673cae 412#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
413template <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 >
414yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17));
415#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
416template <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 >
417yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17));
418#endif
7c673cae 419#ifndef _MANAGED
92f5a8d4
TL
420template <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 >
421yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17));
422#endif
423template <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 >
424yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17));
7c673cae 425#endif
92f5a8d4
TL
426template <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 >
427yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18));
428#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
429template <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 >
430yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 ...));
7c673cae 431#endif
7c673cae 432#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
433template <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 >
434yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18));
435#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
436template <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 >
437yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18));
438#endif
7c673cae 439#ifndef _MANAGED
92f5a8d4
TL
440template <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 >
441yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18));
7c673cae 442#endif
92f5a8d4
TL
443template <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 >
444yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18));
445#endif
446template <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 >
447yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19));
448#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
449template <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 >
450yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 ...));
7c673cae 451#endif
7c673cae 452#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
453template <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 >
454yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19));
455#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
456template <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 >
457yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19));
458#endif
7c673cae 459#ifndef _MANAGED
92f5a8d4
TL
460template <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 >
461yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19));
7c673cae 462#endif
92f5a8d4
TL
463template <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 >
464yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19));
465#endif
466template <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 >
467yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20));
468#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
469template <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 >
470yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 ...));
7c673cae 471#endif
7c673cae 472#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
473template <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 >
474yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20));
475#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
476template <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 >
477yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20));
478#endif
7c673cae 479#ifndef _MANAGED
92f5a8d4
TL
480template <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 >
481yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20));
7c673cae 482#endif
92f5a8d4
TL
483template <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 >
484yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20));
485#endif
486template <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 >
487yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21));
488#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
489template <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 >
490yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 ...));
7c673cae 491#endif
7c673cae 492#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
493template <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 >
494yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21));
495#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
496template <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 >
497yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21));
498#endif
7c673cae 499#ifndef _MANAGED
92f5a8d4
TL
500template <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 >
501yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21));
502#endif
503template <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 >
504yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21));
7c673cae 505#endif
92f5a8d4
TL
506template <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 >
507yes_type is_function_ptr_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));
508#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
509template <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 >
510yes_type is_function_ptr_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 ...));
7c673cae 511#endif
7c673cae 512#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
513template <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 >
514yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22));
515#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
516template <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 >
517yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22));
518#endif
7c673cae 519#ifndef _MANAGED
92f5a8d4
TL
520template <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 >
521yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22));
522#endif
523template <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 >
524yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22));
7c673cae 525#endif
92f5a8d4
TL
526template <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 >
527yes_type is_function_ptr_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));
528#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
529template <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 >
530yes_type is_function_ptr_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 ...));
7c673cae 531#endif
7c673cae 532#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
533template <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 >
534yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23));
535#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
536template <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 >
537yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23));
538#endif
7c673cae 539#ifndef _MANAGED
92f5a8d4
TL
540template <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 >
541yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23));
7c673cae 542#endif
92f5a8d4
TL
543template <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 >
544yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23));
545#endif
546template <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 >
547yes_type is_function_ptr_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));
548#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
549template <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 >
550yes_type is_function_ptr_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 ...));
7c673cae 551#endif
7c673cae 552#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
92f5a8d4
TL
553template <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 >
554yes_type is_function_ptr_tester(R(__stdcall*)(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));
555#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
556template <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 >
557yes_type is_function_ptr_tester(R(__vectorcall*)(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));
558#endif
7c673cae 559#ifndef _MANAGED
92f5a8d4
TL
560template <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 >
561yes_type is_function_ptr_tester(R(__fastcall*)(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));
7c673cae 562#endif
92f5a8d4
TL
563template <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 >
564yes_type is_function_ptr_tester(R(__cdecl*)(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));
7c673cae
FG
565#endif
566#else
567
568#define BOOST_PP_ITERATION_PARAMS_1 \
569 (3, (0, 25, "boost/type_traits/detail/is_function_ptr_tester.hpp"))
570#include BOOST_PP_ITERATE()
571
572#endif // BOOST_TT_PREPROCESSING_MODE
573
574} // namespace type_traits
575} // namespace boost
576
577#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
578
579///// iteration
580
581#else
582#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
583#undef __stdcall
584#undef __fastcall
585#undef __cdecl
586
587template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
588yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
589@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
590template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
591yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
592@#endif
593@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
594template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
595yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
92f5a8d4
TL
596@#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
597template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER, class T) >
598yes_type is_function_ptr_tester(R(__vectorcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER, T)));
599@#endif
7c673cae
FG
600@#ifndef _MANAGED
601template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
602yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
603@#endif
604template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
605yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
606@#endif
607
608#undef BOOST_PP_COUNTER
609#endif // BOOST_PP_IS_ITERATING