GraphLab: Distributed Graph-Parallel API  2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
remove_member_pointer.hpp
1 /**
2  * Copyright (c) 2009 Carnegie Mellon University.
3  * All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing,
12  * software distributed under the License is distributed on an "AS
13  * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14  * express or implied. See the License for the specific language
15  * governing permissions and limitations under the License.
16  *
17  * For more about this software visit:
18  *
19  * http://www.graphlab.ml.cmu.edu
20  *
21  */
22 
23 
24 
25 // (C) Copyright John Maddock 2008.
26 // Use, modification and distribution are subject to the Boost Software License,
27 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
28 // http://www.boost.org/LICENSE_1_0.txt).
29 //
30 // See http://www.boost.org/libs/type_traits for most recent version including documentation.
31 
32 #if !defined(BOOST_PP_IS_ITERATING)
33 
34 #ifndef BOOST_TT_REMOVE_MEMBER_POINTER_HPP_INCLUDED
35 #define BOOST_TT_REMOVE_MEMBER_POINTER_HPP_INCLUDED
36 
37 #if defined(BOOST_TT_PREPROCESSING_MODE)
38 # include <boost/preprocessor/iterate.hpp>
39 # include <boost/preprocessor/enum_params.hpp>
40 # include <boost/preprocessor/comma_if.hpp>
41 #endif
42 
43 #include <boost/config.hpp>
44 #include <boost/detail/workaround.hpp>
45 
46 // should be the last #include
47 #include <boost/type_traits/detail/type_trait_def.hpp>
48 
49 namespace boost {
50 
51 #if !defined(BOOST_TT_PREPROCESSING_MODE)
52 namespace detail{
53 template <class T >
54 struct rem_mem_pointer_impl{ typedef T type; };
55 template <class R, class T >
56 struct rem_mem_pointer_impl<R (T::*)> { typedef R type; };
57 template <class R, class T >
58 struct rem_mem_pointer_impl<R (T::* const)> { typedef R type; };
59 template <class R, class T >
60 struct rem_mem_pointer_impl<R (T::* volatile)> { typedef R type; };
61 template <class R, class T >
62 struct rem_mem_pointer_impl<R (T::* const volatile)> { typedef R type; };
63 
64 // pre-processed code, don't edit, try GNU cpp with
65 // cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
66 template <class R, class T >
67 struct rem_mem_pointer_impl<R (T::*)() > { typedef R type(); };
68 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
69 template <class R, class T >
70 struct rem_mem_pointer_impl<R (T::*)( ...) > { typedef R type( ...); };
71 #endif
72 
73 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
74 template <class R, class T >
75 struct rem_mem_pointer_impl<R (T::*)() const > { typedef R type(); };
76 
77 template <class R, class T >
78 struct rem_mem_pointer_impl<R (T::*)() volatile > { typedef R type(); };
79 
80 template <class R, class T >
81 struct rem_mem_pointer_impl<R (T::*)() const volatile > { typedef R type(); };
82 
83 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
84 template <class R, class T >
85 struct rem_mem_pointer_impl<R (T::*)( ...) const > { typedef R type( ...); };
86 
87 template <class R, class T >
88 struct rem_mem_pointer_impl<R (T::*)( ...) volatile > { typedef R type( ...); };
89 
90 template <class R, class T >
91 struct rem_mem_pointer_impl<R (T::*)( ...) const volatile > { typedef R type( ...); };
92 #endif
93 #endif
94 
95 template <class R, class T >
96 struct rem_mem_pointer_impl<R (T::*const)() > { typedef R type(); };
97 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
98 template <class R, class T >
99 struct rem_mem_pointer_impl<R (T::*const)( ...) > { typedef R type( ...); };
100 #endif
101 
102 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
103 template <class R, class T >
104 struct rem_mem_pointer_impl<R (T::*const)() const > { typedef R type(); };
105 
106 template <class R, class T >
107 struct rem_mem_pointer_impl<R (T::*const)() volatile > { typedef R type(); };
108 
109 template <class R, class T >
110 struct rem_mem_pointer_impl<R (T::*const)() const volatile > { typedef R type(); };
111 
112 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
113 template <class R, class T >
114 struct rem_mem_pointer_impl<R (T::*const)( ...) const > { typedef R type( ...); };
115 
116 template <class R, class T >
117 struct rem_mem_pointer_impl<R (T::*const)( ...) volatile > { typedef R type( ...); };
118 
119 template <class R, class T >
120 struct rem_mem_pointer_impl<R (T::*const)( ...) const volatile > { typedef R type( ...); };
121 #endif
122 #endif
123 
124 template <class R, class T >
125 struct rem_mem_pointer_impl<R (T::*const volatile)() > { typedef R type(); };
126 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
127 template <class R, class T >
128 struct rem_mem_pointer_impl<R (T::*const volatile)( ...) > { typedef R type( ...); };
129 #endif
130 
131 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
132 template <class R, class T >
133 struct rem_mem_pointer_impl<R (T::*const volatile)() const > { typedef R type(); };
134 
135 template <class R, class T >
136 struct rem_mem_pointer_impl<R (T::*const volatile)() volatile > { typedef R type(); };
137 
138 template <class R, class T >
139 struct rem_mem_pointer_impl<R (T::*const volatile)() const volatile > { typedef R type(); };
140 
141 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
142 template <class R, class T >
143 struct rem_mem_pointer_impl<R (T::*const volatile)( ...) const > { typedef R type( ...); };
144 
145 template <class R, class T >
146 struct rem_mem_pointer_impl<R (T::*const volatile)( ...) volatile > { typedef R type( ...); };
147 
148 template <class R, class T >
149 struct rem_mem_pointer_impl<R (T::*const volatile)( ...) const volatile > { typedef R type( ...); };
150 #endif
151 #endif
152 
153 template <class R, class T >
154 struct rem_mem_pointer_impl<R (T::*volatile)() > { typedef R type(); };
155 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
156 template <class R, class T >
157 struct rem_mem_pointer_impl<R (T::*volatile)( ...) > { typedef R type( ...); };
158 #endif
159 
160 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
161 template <class R, class T >
162 struct rem_mem_pointer_impl<R (T::*volatile)() const > { typedef R type(); };
163 
164 template <class R, class T >
165 struct rem_mem_pointer_impl<R (T::*volatile)() volatile > { typedef R type(); };
166 
167 template <class R, class T >
168 struct rem_mem_pointer_impl<R (T::*volatile)() const volatile > { typedef R type(); };
169 
170 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
171 template <class R, class T >
172 struct rem_mem_pointer_impl<R (T::*volatile)( ...) const > { typedef R type( ...); };
173 
174 template <class R, class T >
175 struct rem_mem_pointer_impl<R (T::*volatile)( ...) volatile > { typedef R type( ...); };
176 
177 template <class R, class T >
178 struct rem_mem_pointer_impl<R (T::*volatile)( ...) const volatile > { typedef R type( ...); };
179 #endif
180 #endif
181 template <class R, class T , class T0>
182 struct rem_mem_pointer_impl<R (T::*)( T0) > { typedef R type( T0); };
183 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
184 template <class R, class T , class T0>
185 struct rem_mem_pointer_impl<R (T::*)( T0 ...) > { typedef R type( T0 ...); };
186 #endif
187 
188 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
189 template <class R, class T , class T0>
190 struct rem_mem_pointer_impl<R (T::*)( T0) const > { typedef R type( T0); };
191 
192 template <class R, class T , class T0>
193 struct rem_mem_pointer_impl<R (T::*)( T0) volatile > { typedef R type( T0); };
194 
195 template <class R, class T , class T0>
196 struct rem_mem_pointer_impl<R (T::*)( T0) const volatile > { typedef R type( T0); };
197 
198 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
199 template <class R, class T , class T0>
200 struct rem_mem_pointer_impl<R (T::*)( T0 ...) const > { typedef R type( T0 ...); };
201 
202 template <class R, class T , class T0>
203 struct rem_mem_pointer_impl<R (T::*)( T0 ...) volatile > { typedef R type( T0 ...); };
204 
205 template <class R, class T , class T0>
206 struct rem_mem_pointer_impl<R (T::*)( T0 ...) const volatile > { typedef R type( T0 ...); };
207 #endif
208 #endif
209 
210 template <class R, class T , class T0>
211 struct rem_mem_pointer_impl<R (T::*const)( T0) > { typedef R type( T0); };
212 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
213 template <class R, class T , class T0>
214 struct rem_mem_pointer_impl<R (T::*const)( T0 ...) > { typedef R type( T0 ...); };
215 #endif
216 
217 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
218 template <class R, class T , class T0>
219 struct rem_mem_pointer_impl<R (T::*const)( T0) const > { typedef R type( T0); };
220 
221 template <class R, class T , class T0>
222 struct rem_mem_pointer_impl<R (T::*const)( T0) volatile > { typedef R type( T0); };
223 
224 template <class R, class T , class T0>
225 struct rem_mem_pointer_impl<R (T::*const)( T0) const volatile > { typedef R type( T0); };
226 
227 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
228 template <class R, class T , class T0>
229 struct rem_mem_pointer_impl<R (T::*const)( T0 ...) const > { typedef R type( T0 ...); };
230 
231 template <class R, class T , class T0>
232 struct rem_mem_pointer_impl<R (T::*const)( T0 ...) volatile > { typedef R type( T0 ...); };
233 
234 template <class R, class T , class T0>
235 struct rem_mem_pointer_impl<R (T::*const)( T0 ...) const volatile > { typedef R type( T0 ...); };
236 #endif
237 #endif
238 
239 template <class R, class T , class T0>
240 struct rem_mem_pointer_impl<R (T::*const volatile)( T0) > { typedef R type( T0); };
241 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
242 template <class R, class T , class T0>
243 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) > { typedef R type( T0 ...); };
244 #endif
245 
246 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
247 template <class R, class T , class T0>
248 struct rem_mem_pointer_impl<R (T::*const volatile)( T0) const > { typedef R type( T0); };
249 
250 template <class R, class T , class T0>
251 struct rem_mem_pointer_impl<R (T::*const volatile)( T0) volatile > { typedef R type( T0); };
252 
253 template <class R, class T , class T0>
254 struct rem_mem_pointer_impl<R (T::*const volatile)( T0) const volatile > { typedef R type( T0); };
255 
256 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
257 template <class R, class T , class T0>
258 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) const > { typedef R type( T0 ...); };
259 
260 template <class R, class T , class T0>
261 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) volatile > { typedef R type( T0 ...); };
262 
263 template <class R, class T , class T0>
264 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) const volatile > { typedef R type( T0 ...); };
265 #endif
266 #endif
267 
268 template <class R, class T , class T0>
269 struct rem_mem_pointer_impl<R (T::*volatile)( T0) > { typedef R type( T0); };
270 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
271 template <class R, class T , class T0>
272 struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) > { typedef R type( T0 ...); };
273 #endif
274 
275 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
276 template <class R, class T , class T0>
277 struct rem_mem_pointer_impl<R (T::*volatile)( T0) const > { typedef R type( T0); };
278 
279 template <class R, class T , class T0>
280 struct rem_mem_pointer_impl<R (T::*volatile)( T0) volatile > { typedef R type( T0); };
281 
282 template <class R, class T , class T0>
283 struct rem_mem_pointer_impl<R (T::*volatile)( T0) const volatile > { typedef R type( T0); };
284 
285 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
286 template <class R, class T , class T0>
287 struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) const > { typedef R type( T0 ...); };
288 
289 template <class R, class T , class T0>
290 struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) volatile > { typedef R type( T0 ...); };
291 
292 template <class R, class T , class T0>
293 struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) const volatile > { typedef R type( T0 ...); };
294 #endif
295 #endif
296 template <class R, class T , class T0 , class T1>
297 struct rem_mem_pointer_impl<R (T::*)( T0 , T1) > { typedef R type( T0 , T1); };
298 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
299 template <class R, class T , class T0 , class T1>
300 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
301 #endif
302 
303 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
304 template <class R, class T , class T0 , class T1>
305 struct rem_mem_pointer_impl<R (T::*)( T0 , T1) const > { typedef R type( T0 , T1); };
306 
307 template <class R, class T , class T0 , class T1>
308 struct rem_mem_pointer_impl<R (T::*)( T0 , T1) volatile > { typedef R type( T0 , T1); };
309 
310 template <class R, class T , class T0 , class T1>
311 struct rem_mem_pointer_impl<R (T::*)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
312 
313 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
314 template <class R, class T , class T0 , class T1>
315 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
316 
317 template <class R, class T , class T0 , class T1>
318 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
319 
320 template <class R, class T , class T0 , class T1>
321 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
322 #endif
323 #endif
324 
325 template <class R, class T , class T0 , class T1>
326 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) > { typedef R type( T0 , T1); };
327 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
328 template <class R, class T , class T0 , class T1>
329 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
330 #endif
331 
332 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
333 template <class R, class T , class T0 , class T1>
334 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) const > { typedef R type( T0 , T1); };
335 
336 template <class R, class T , class T0 , class T1>
337 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) volatile > { typedef R type( T0 , T1); };
338 
339 template <class R, class T , class T0 , class T1>
340 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
341 
342 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
343 template <class R, class T , class T0 , class T1>
344 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
345 
346 template <class R, class T , class T0 , class T1>
347 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
348 
349 template <class R, class T , class T0 , class T1>
350 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
351 #endif
352 #endif
353 
354 template <class R, class T , class T0 , class T1>
355 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) > { typedef R type( T0 , T1); };
356 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
357 template <class R, class T , class T0 , class T1>
358 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
359 #endif
360 
361 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
362 template <class R, class T , class T0 , class T1>
363 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) const > { typedef R type( T0 , T1); };
364 
365 template <class R, class T , class T0 , class T1>
366 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) volatile > { typedef R type( T0 , T1); };
367 
368 template <class R, class T , class T0 , class T1>
369 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
370 
371 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
372 template <class R, class T , class T0 , class T1>
373 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
374 
375 template <class R, class T , class T0 , class T1>
376 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
377 
378 template <class R, class T , class T0 , class T1>
379 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
380 #endif
381 #endif
382 
383 template <class R, class T , class T0 , class T1>
384 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) > { typedef R type( T0 , T1); };
385 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
386 template <class R, class T , class T0 , class T1>
387 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
388 #endif
389 
390 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
391 template <class R, class T , class T0 , class T1>
392 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) const > { typedef R type( T0 , T1); };
393 
394 template <class R, class T , class T0 , class T1>
395 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) volatile > { typedef R type( T0 , T1); };
396 
397 template <class R, class T , class T0 , class T1>
398 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
399 
400 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
401 template <class R, class T , class T0 , class T1>
402 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
403 
404 template <class R, class T , class T0 , class T1>
405 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
406 
407 template <class R, class T , class T0 , class T1>
408 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
409 #endif
410 #endif
411 template <class R, class T , class T0 , class T1 , class T2>
412 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
413 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
414 template <class R, class T , class T0 , class T1 , class T2>
415 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
416 #endif
417 
418 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
419 template <class R, class T , class T0 , class T1 , class T2>
420 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
421 
422 template <class R, class T , class T0 , class T1 , class T2>
423 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
424 
425 template <class R, class T , class T0 , class T1 , class T2>
426 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
427 
428 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
429 template <class R, class T , class T0 , class T1 , class T2>
430 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
431 
432 template <class R, class T , class T0 , class T1 , class T2>
433 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
434 
435 template <class R, class T , class T0 , class T1 , class T2>
436 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
437 #endif
438 #endif
439 
440 template <class R, class T , class T0 , class T1 , class T2>
441 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
442 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
443 template <class R, class T , class T0 , class T1 , class T2>
444 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
445 #endif
446 
447 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
448 template <class R, class T , class T0 , class T1 , class T2>
449 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
450 
451 template <class R, class T , class T0 , class T1 , class T2>
452 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
453 
454 template <class R, class T , class T0 , class T1 , class T2>
455 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
456 
457 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
458 template <class R, class T , class T0 , class T1 , class T2>
459 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
460 
461 template <class R, class T , class T0 , class T1 , class T2>
462 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
463 
464 template <class R, class T , class T0 , class T1 , class T2>
465 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
466 #endif
467 #endif
468 
469 template <class R, class T , class T0 , class T1 , class T2>
470 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
471 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
472 template <class R, class T , class T0 , class T1 , class T2>
473 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
474 #endif
475 
476 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
477 template <class R, class T , class T0 , class T1 , class T2>
478 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
479 
480 template <class R, class T , class T0 , class T1 , class T2>
481 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
482 
483 template <class R, class T , class T0 , class T1 , class T2>
484 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
485 
486 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
487 template <class R, class T , class T0 , class T1 , class T2>
488 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
489 
490 template <class R, class T , class T0 , class T1 , class T2>
491 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
492 
493 template <class R, class T , class T0 , class T1 , class T2>
494 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
495 #endif
496 #endif
497 
498 template <class R, class T , class T0 , class T1 , class T2>
499 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
500 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
501 template <class R, class T , class T0 , class T1 , class T2>
502 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
503 #endif
504 
505 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
506 template <class R, class T , class T0 , class T1 , class T2>
507 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
508 
509 template <class R, class T , class T0 , class T1 , class T2>
510 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
511 
512 template <class R, class T , class T0 , class T1 , class T2>
513 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
514 
515 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
516 template <class R, class T , class T0 , class T1 , class T2>
517 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
518 
519 template <class R, class T , class T0 , class T1 , class T2>
520 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
521 
522 template <class R, class T , class T0 , class T1 , class T2>
523 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
524 #endif
525 #endif
526 template <class R, class T , class T0 , class T1 , class T2 , class T3>
527 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
528 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
529 template <class R, class T , class T0 , class T1 , class T2 , class T3>
530 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
531 #endif
532 
533 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
534 template <class R, class T , class T0 , class T1 , class T2 , class T3>
535 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
536 
537 template <class R, class T , class T0 , class T1 , class T2 , class T3>
538 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
539 
540 template <class R, class T , class T0 , class T1 , class T2 , class T3>
541 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
542 
543 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
544 template <class R, class T , class T0 , class T1 , class T2 , class T3>
545 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
546 
547 template <class R, class T , class T0 , class T1 , class T2 , class T3>
548 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
549 
550 template <class R, class T , class T0 , class T1 , class T2 , class T3>
551 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
552 #endif
553 #endif
554 
555 template <class R, class T , class T0 , class T1 , class T2 , class T3>
556 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
557 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
558 template <class R, class T , class T0 , class T1 , class T2 , class T3>
559 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
560 #endif
561 
562 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
563 template <class R, class T , class T0 , class T1 , class T2 , class T3>
564 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
565 
566 template <class R, class T , class T0 , class T1 , class T2 , class T3>
567 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
568 
569 template <class R, class T , class T0 , class T1 , class T2 , class T3>
570 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
571 
572 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
573 template <class R, class T , class T0 , class T1 , class T2 , class T3>
574 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
575 
576 template <class R, class T , class T0 , class T1 , class T2 , class T3>
577 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
578 
579 template <class R, class T , class T0 , class T1 , class T2 , class T3>
580 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
581 #endif
582 #endif
583 
584 template <class R, class T , class T0 , class T1 , class T2 , class T3>
585 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
586 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
587 template <class R, class T , class T0 , class T1 , class T2 , class T3>
588 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
589 #endif
590 
591 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
592 template <class R, class T , class T0 , class T1 , class T2 , class T3>
593 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
594 
595 template <class R, class T , class T0 , class T1 , class T2 , class T3>
596 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
597 
598 template <class R, class T , class T0 , class T1 , class T2 , class T3>
599 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
600 
601 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
602 template <class R, class T , class T0 , class T1 , class T2 , class T3>
603 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
604 
605 template <class R, class T , class T0 , class T1 , class T2 , class T3>
606 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
607 
608 template <class R, class T , class T0 , class T1 , class T2 , class T3>
609 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
610 #endif
611 #endif
612 
613 template <class R, class T , class T0 , class T1 , class T2 , class T3>
614 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
615 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
616 template <class R, class T , class T0 , class T1 , class T2 , class T3>
617 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
618 #endif
619 
620 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
621 template <class R, class T , class T0 , class T1 , class T2 , class T3>
622 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
623 
624 template <class R, class T , class T0 , class T1 , class T2 , class T3>
625 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
626 
627 template <class R, class T , class T0 , class T1 , class T2 , class T3>
628 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
629 
630 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
631 template <class R, class T , class T0 , class T1 , class T2 , class T3>
632 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
633 
634 template <class R, class T , class T0 , class T1 , class T2 , class T3>
635 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
636 
637 template <class R, class T , class T0 , class T1 , class T2 , class T3>
638 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
639 #endif
640 #endif
641 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
642 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
643 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
644 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
645 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
646 #endif
647 
648 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
649 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
650 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
651 
652 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
653 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
654 
655 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
656 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
657 
658 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
659 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
660 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
661 
662 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
663 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
664 
665 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
666 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
667 #endif
668 #endif
669 
670 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
671 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
672 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
673 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
674 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
675 #endif
676 
677 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
678 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
679 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
680 
681 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
682 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
683 
684 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
685 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
686 
687 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
688 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
689 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
690 
691 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
692 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
693 
694 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
695 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
696 #endif
697 #endif
698 
699 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
700 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
701 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
702 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
703 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
704 #endif
705 
706 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
707 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
708 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
709 
710 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
711 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
712 
713 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
714 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
715 
716 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
717 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
718 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
719 
720 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
721 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
722 
723 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
724 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
725 #endif
726 #endif
727 
728 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
729 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
730 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
731 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
732 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
733 #endif
734 
735 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
736 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
737 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
738 
739 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
740 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
741 
742 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
743 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
744 
745 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
746 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
747 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
748 
749 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
750 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
751 
752 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
753 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
754 #endif
755 #endif
756 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
757 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
758 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
759 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
760 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
761 #endif
762 
763 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
764 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
765 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
766 
767 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
768 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
769 
770 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
771 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
772 
773 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
774 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
775 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
776 
777 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
778 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
779 
780 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
781 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
782 #endif
783 #endif
784 
785 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
786 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
787 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
788 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
789 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
790 #endif
791 
792 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
793 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
794 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
795 
796 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
797 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
798 
799 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
800 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
801 
802 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
803 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
804 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
805 
806 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
807 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
808 
809 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
810 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
811 #endif
812 #endif
813 
814 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
815 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
816 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
817 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
818 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
819 #endif
820 
821 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
822 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
823 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
824 
825 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
826 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
827 
828 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
829 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
830 
831 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
832 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
833 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
834 
835 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
836 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
837 
838 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
839 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
840 #endif
841 #endif
842 
843 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
844 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
845 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
846 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
847 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
848 #endif
849 
850 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
851 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
852 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
853 
854 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
855 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
856 
857 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
858 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
859 
860 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
861 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
862 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
863 
864 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
865 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
866 
867 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
868 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
869 #endif
870 #endif
871 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
872 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
873 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
874 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
875 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
876 #endif
877 
878 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
879 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
880 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
881 
882 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
883 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
884 
885 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
886 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
887 
888 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
889 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
890 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
891 
892 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
893 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
894 
895 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
896 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
897 #endif
898 #endif
899 
900 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
901 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
902 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
903 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
904 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
905 #endif
906 
907 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
908 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
909 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
910 
911 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
912 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
913 
914 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
915 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
916 
917 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
918 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
919 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
920 
921 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
922 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
923 
924 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
925 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
926 #endif
927 #endif
928 
929 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
930 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
931 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
932 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
933 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
934 #endif
935 
936 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
937 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
938 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
939 
940 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
941 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
942 
943 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
944 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
945 
946 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
947 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
948 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
949 
950 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
951 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
952 
953 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
954 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
955 #endif
956 #endif
957 
958 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
959 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
960 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
961 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
962 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
963 #endif
964 
965 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
966 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
967 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
968 
969 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
970 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
971 
972 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
973 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
974 
975 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
976 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
977 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
978 
979 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
980 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
981 
982 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
983 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
984 #endif
985 #endif
986 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
987 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
988 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
989 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
990 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
991 #endif
992 
993 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
994 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
995 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
996 
997 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
998 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
999 
1000 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1001 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1002 
1003 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1004 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1005 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1006 
1007 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1008 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1009 
1010 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1011 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1012 #endif
1013 #endif
1014 
1015 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1016 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1017 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1018 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1019 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1020 #endif
1021 
1022 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1023 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1024 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1025 
1026 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1027 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1028 
1029 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1030 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1031 
1032 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1033 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1034 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1035 
1036 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1037 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1038 
1039 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1040 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1041 #endif
1042 #endif
1043 
1044 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1045 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1046 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1047 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1048 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1049 #endif
1050 
1051 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1052 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1053 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1054 
1055 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1056 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1057 
1058 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1059 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1060 
1061 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1062 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1063 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1064 
1065 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1066 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1067 
1068 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1069 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1070 #endif
1071 #endif
1072 
1073 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1074 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1075 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1076 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1077 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1078 #endif
1079 
1080 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1081 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1082 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1083 
1084 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1085 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1086 
1087 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1088 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
1089 
1090 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1091 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1092 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1093 
1094 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1095 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1096 
1097 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
1098 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
1099 #endif
1100 #endif
1101 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1102 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1103 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1104 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1105 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1106 #endif
1107 
1108 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1109 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1110 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1111 
1112 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1113 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1114 
1115 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1116 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1117 
1118 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1119 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1120 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1121 
1122 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1123 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1124 
1125 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1126 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1127 #endif
1128 #endif
1129 
1130 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1131 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1132 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1133 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1134 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1135 #endif
1136 
1137 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1138 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1139 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1140 
1141 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1142 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1143 
1144 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1145 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1146 
1147 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1148 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1149 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1150 
1151 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1152 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1153 
1154 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1155 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1156 #endif
1157 #endif
1158 
1159 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1160 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1161 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1162 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1163 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1164 #endif
1165 
1166 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1167 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1168 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1169 
1170 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1171 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1172 
1173 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1174 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1175 
1176 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1177 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1178 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1179 
1180 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1181 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1182 
1183 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1184 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1185 #endif
1186 #endif
1187 
1188 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1189 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1190 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1191 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1192 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1193 #endif
1194 
1195 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1196 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1197 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1198 
1199 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1200 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1201 
1202 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1203 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
1204 
1205 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1206 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1207 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1208 
1209 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1210 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1211 
1212 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
1213 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
1214 #endif
1215 #endif
1216 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1217 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1218 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1219 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1220 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1221 #endif
1222 
1223 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1224 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1225 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1226 
1227 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1228 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1229 
1230 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1231 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1232 
1233 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1234 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1235 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1236 
1237 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1238 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1239 
1240 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1241 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1242 #endif
1243 #endif
1244 
1245 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1246 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1247 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1248 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1249 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1250 #endif
1251 
1252 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1253 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1254 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1255 
1256 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1257 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1258 
1259 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1260 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1261 
1262 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1263 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1264 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1265 
1266 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1267 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1268 
1269 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1270 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1271 #endif
1272 #endif
1273 
1274 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1275 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1276 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1277 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1278 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1279 #endif
1280 
1281 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1282 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1283 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1284 
1285 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1286 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1287 
1288 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1289 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1290 
1291 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1292 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1293 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1294 
1295 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1296 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1297 
1298 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1299 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1300 #endif
1301 #endif
1302 
1303 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1304 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1305 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1306 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1307 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1308 #endif
1309 
1310 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1311 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1312 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1313 
1314 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1315 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1316 
1317 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1318 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
1319 
1320 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1321 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1322 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1323 
1324 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1325 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1326 
1327 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
1328 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
1329 #endif
1330 #endif
1331 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1332 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1333 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1334 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1335 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1336 #endif
1337 
1338 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1339 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1340 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1341 
1342 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1343 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1344 
1345 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1346 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1347 
1348 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1349 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1350 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1351 
1352 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1353 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1354 
1355 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1356 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1357 #endif
1358 #endif
1359 
1360 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1361 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1362 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1363 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1364 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1365 #endif
1366 
1367 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1368 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1369 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1370 
1371 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1372 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1373 
1374 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1375 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1376 
1377 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1378 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1379 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1380 
1381 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1382 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1383 
1384 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1385 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1386 #endif
1387 #endif
1388 
1389 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1390 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1391 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1392 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1393 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1394 #endif
1395 
1396 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1397 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1398 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1399 
1400 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1401 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1402 
1403 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1404 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1405 
1406 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1407 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1408 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1409 
1410 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1411 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1412 
1413 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1414 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1415 #endif
1416 #endif
1417 
1418 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1419 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1420 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1421 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1422 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1423 #endif
1424 
1425 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1426 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1427 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1428 
1429 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1430 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1431 
1432 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1433 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
1434 
1435 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1436 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1437 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1438 
1439 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1440 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1441 
1442 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
1443 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
1444 #endif
1445 #endif
1446 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1447 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1448 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1449 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1450 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1451 #endif
1452 
1453 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1454 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1455 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1456 
1457 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1458 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1459 
1460 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1461 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1462 
1463 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1464 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1465 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1466 
1467 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1468 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1469 
1470 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1471 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1472 #endif
1473 #endif
1474 
1475 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1476 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1477 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1478 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1479 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1480 #endif
1481 
1482 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1483 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1484 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1485 
1486 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1487 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1488 
1489 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1490 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1491 
1492 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1493 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1494 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1495 
1496 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1497 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1498 
1499 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1500 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1501 #endif
1502 #endif
1503 
1504 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1505 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1506 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1507 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1508 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1509 #endif
1510 
1511 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1512 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1513 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1514 
1515 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1516 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1517 
1518 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1519 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1520 
1521 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1522 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1523 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1524 
1525 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1526 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1527 
1528 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1529 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1530 #endif
1531 #endif
1532 
1533 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1534 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1535 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1536 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1537 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1538 #endif
1539 
1540 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1541 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1542 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1543 
1544 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1545 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1546 
1547 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1548 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
1549 
1550 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1551 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1552 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1553 
1554 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1555 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1556 
1557 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
1558 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
1559 #endif
1560 #endif
1561 template <class R, class T , 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>
1562 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1563 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1564 template <class R, class T , 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>
1565 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1566 #endif
1567 
1568 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1569 template <class R, class T , 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>
1570 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1571 
1572 template <class R, class T , 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>
1573 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1574 
1575 template <class R, class T , 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>
1576 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1577 
1578 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1579 template <class R, class T , 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>
1580 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1581 
1582 template <class R, class T , 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>
1583 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1584 
1585 template <class R, class T , 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>
1586 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1587 #endif
1588 #endif
1589 
1590 template <class R, class T , 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>
1591 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1592 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1593 template <class R, class T , 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>
1594 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1595 #endif
1596 
1597 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1598 template <class R, class T , 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>
1599 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1600 
1601 template <class R, class T , 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>
1602 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1603 
1604 template <class R, class T , 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>
1605 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1606 
1607 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1608 template <class R, class T , 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>
1609 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1610 
1611 template <class R, class T , 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>
1612 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1613 
1614 template <class R, class T , 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>
1615 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1616 #endif
1617 #endif
1618 
1619 template <class R, class T , 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>
1620 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1621 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1622 template <class R, class T , 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>
1623 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1624 #endif
1625 
1626 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1627 template <class R, class T , 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>
1628 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1629 
1630 template <class R, class T , 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>
1631 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1632 
1633 template <class R, class T , 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>
1634 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1635 
1636 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1637 template <class R, class T , 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>
1638 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1639 
1640 template <class R, class T , 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>
1641 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1642 
1643 template <class R, class T , 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>
1644 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1645 #endif
1646 #endif
1647 
1648 template <class R, class T , 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>
1649 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1650 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1651 template <class R, class T , 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>
1652 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1653 #endif
1654 
1655 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1656 template <class R, class T , 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>
1657 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1658 
1659 template <class R, class T , 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>
1660 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1661 
1662 template <class R, class T , 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>
1663 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
1664 
1665 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1666 template <class R, class T , 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>
1667 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1668 
1669 template <class R, class T , 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>
1670 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1671 
1672 template <class R, class T , 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>
1673 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
1674 #endif
1675 #endif
1676 template <class R, class T , 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>
1677 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1678 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1679 template <class R, class T , 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>
1680 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1681 #endif
1682 
1683 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1684 template <class R, class T , 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>
1685 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1686 
1687 template <class R, class T , 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>
1688 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1689 
1690 template <class R, class T , 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>
1691 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1692 
1693 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1694 template <class R, class T , 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>
1695 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1696 
1697 template <class R, class T , 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>
1698 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1699 
1700 template <class R, class T , 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>
1701 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1702 #endif
1703 #endif
1704 
1705 template <class R, class T , 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>
1706 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1707 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1708 template <class R, class T , 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>
1709 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1710 #endif
1711 
1712 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1713 template <class R, class T , 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>
1714 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1715 
1716 template <class R, class T , 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>
1717 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1718 
1719 template <class R, class T , 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>
1720 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1721 
1722 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1723 template <class R, class T , 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>
1724 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1725 
1726 template <class R, class T , 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>
1727 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1728 
1729 template <class R, class T , 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>
1730 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1731 #endif
1732 #endif
1733 
1734 template <class R, class T , 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>
1735 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1736 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1737 template <class R, class T , 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>
1738 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1739 #endif
1740 
1741 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1742 template <class R, class T , 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>
1743 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1744 
1745 template <class R, class T , 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>
1746 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1747 
1748 template <class R, class T , 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>
1749 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1750 
1751 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1752 template <class R, class T , 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>
1753 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1754 
1755 template <class R, class T , 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>
1756 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1757 
1758 template <class R, class T , 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>
1759 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1760 #endif
1761 #endif
1762 
1763 template <class R, class T , 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>
1764 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1765 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1766 template <class R, class T , 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>
1767 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1768 #endif
1769 
1770 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1771 template <class R, class T , 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>
1772 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1773 
1774 template <class R, class T , 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>
1775 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1776 
1777 template <class R, class T , 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>
1778 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
1779 
1780 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1781 template <class R, class T , 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>
1782 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1783 
1784 template <class R, class T , 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>
1785 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1786 
1787 template <class R, class T , 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>
1788 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
1789 #endif
1790 #endif
1791 template <class R, class T , 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>
1792 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1793 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1794 template <class R, class T , 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>
1795 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1796 #endif
1797 
1798 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1799 template <class R, class T , 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>
1800 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1801 
1802 template <class R, class T , 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>
1803 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1804 
1805 template <class R, class T , 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>
1806 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1807 
1808 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1809 template <class R, class T , 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>
1810 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1811 
1812 template <class R, class T , 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>
1813 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1814 
1815 template <class R, class T , 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>
1816 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1817 #endif
1818 #endif
1819 
1820 template <class R, class T , 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>
1821 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1822 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1823 template <class R, class T , 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>
1824 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1825 #endif
1826 
1827 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1828 template <class R, class T , 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>
1829 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1830 
1831 template <class R, class T , 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>
1832 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1833 
1834 template <class R, class T , 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>
1835 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1836 
1837 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1838 template <class R, class T , 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>
1839 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1840 
1841 template <class R, class T , 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>
1842 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1843 
1844 template <class R, class T , 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>
1845 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1846 #endif
1847 #endif
1848 
1849 template <class R, class T , 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>
1850 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1851 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1852 template <class R, class T , 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>
1853 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1854 #endif
1855 
1856 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1857 template <class R, class T , 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>
1858 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1859 
1860 template <class R, class T , 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>
1861 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1862 
1863 template <class R, class T , 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>
1864 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1865 
1866 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1867 template <class R, class T , 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>
1868 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1869 
1870 template <class R, class T , 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>
1871 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1872 
1873 template <class R, class T , 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>
1874 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1875 #endif
1876 #endif
1877 
1878 template <class R, class T , 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>
1879 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1880 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1881 template <class R, class T , 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>
1882 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1883 #endif
1884 
1885 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1886 template <class R, class T , 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>
1887 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1888 
1889 template <class R, class T , 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>
1890 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1891 
1892 template <class R, class T , 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>
1893 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
1894 
1895 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1896 template <class R, class T , 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>
1897 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1898 
1899 template <class R, class T , 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>
1900 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1901 
1902 template <class R, class T , 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>
1903 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
1904 #endif
1905 #endif
1906 template <class R, class T , 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>
1907 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1908 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1909 template <class R, class T , 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>
1910 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1911 #endif
1912 
1913 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1914 template <class R, class T , 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>
1915 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1916 
1917 template <class R, class T , 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>
1918 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1919 
1920 template <class R, class T , 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>
1921 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1922 
1923 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1924 template <class R, class T , 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>
1925 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1926 
1927 template <class R, class T , 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>
1928 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1929 
1930 template <class R, class T , 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>
1931 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1932 #endif
1933 #endif
1934 
1935 template <class R, class T , 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>
1936 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1937 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1938 template <class R, class T , 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>
1939 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1940 #endif
1941 
1942 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1943 template <class R, class T , 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>
1944 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1945 
1946 template <class R, class T , 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>
1947 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1948 
1949 template <class R, class T , 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>
1950 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1951 
1952 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1953 template <class R, class T , 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>
1954 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1955 
1956 template <class R, class T , 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>
1957 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1958 
1959 template <class R, class T , 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>
1960 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1961 #endif
1962 #endif
1963 
1964 template <class R, class T , 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>
1965 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1966 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1967 template <class R, class T , 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>
1968 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1969 #endif
1970 
1971 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
1972 template <class R, class T , 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>
1973 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1974 
1975 template <class R, class T , 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>
1976 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1977 
1978 template <class R, class T , 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>
1979 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1980 
1981 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1982 template <class R, class T , 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>
1983 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1984 
1985 template <class R, class T , 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>
1986 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1987 
1988 template <class R, class T , 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>
1989 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1990 #endif
1991 #endif
1992 
1993 template <class R, class T , 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>
1994 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
1995 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
1996 template <class R, class T , 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>
1997 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
1998 #endif
1999 
2000 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2001 template <class R, class T , 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>
2002 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
2003 
2004 template <class R, class T , 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>
2005 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
2006 
2007 template <class R, class T , 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>
2008 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
2009 
2010 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2011 template <class R, class T , 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>
2012 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
2013 
2014 template <class R, class T , 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>
2015 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
2016 
2017 template <class R, class T , 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>
2018 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
2019 #endif
2020 #endif
2021 template <class R, class T , 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>
2022 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2023 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2024 template <class R, class T , 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>
2025 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2026 #endif
2027 
2028 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2029 template <class R, class T , 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>
2030 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2031 
2032 template <class R, class T , 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>
2033 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2034 
2035 template <class R, class T , 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>
2036 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2037 
2038 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2039 template <class R, class T , 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>
2040 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2041 
2042 template <class R, class T , 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>
2043 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2044 
2045 template <class R, class T , 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>
2046 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2047 #endif
2048 #endif
2049 
2050 template <class R, class T , 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>
2051 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2052 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2053 template <class R, class T , 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>
2054 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2055 #endif
2056 
2057 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2058 template <class R, class T , 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>
2059 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2060 
2061 template <class R, class T , 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>
2062 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2063 
2064 template <class R, class T , 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>
2065 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2066 
2067 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2068 template <class R, class T , 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>
2069 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2070 
2071 template <class R, class T , 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>
2072 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2073 
2074 template <class R, class T , 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>
2075 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2076 #endif
2077 #endif
2078 
2079 template <class R, class T , 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>
2080 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2081 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2082 template <class R, class T , 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>
2083 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2084 #endif
2085 
2086 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2087 template <class R, class T , 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>
2088 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2089 
2090 template <class R, class T , 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>
2091 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2092 
2093 template <class R, class T , 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>
2094 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2095 
2096 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2097 template <class R, class T , 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>
2098 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2099 
2100 template <class R, class T , 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>
2101 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2102 
2103 template <class R, class T , 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>
2104 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2105 #endif
2106 #endif
2107 
2108 template <class R, class T , 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>
2109 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2110 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2111 template <class R, class T , 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>
2112 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2113 #endif
2114 
2115 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2116 template <class R, class T , 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>
2117 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2118 
2119 template <class R, class T , 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>
2120 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2121 
2122 template <class R, class T , 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>
2123 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
2124 
2125 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2126 template <class R, class T , 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>
2127 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2128 
2129 template <class R, class T , 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>
2130 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2131 
2132 template <class R, class T , 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>
2133 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
2134 #endif
2135 #endif
2136 template <class R, class T , 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>
2137 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2138 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2139 template <class R, class T , 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>
2140 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2141 #endif
2142 
2143 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2144 template <class R, class T , 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>
2145 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2146 
2147 template <class R, class T , 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>
2148 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2149 
2150 template <class R, class T , 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>
2151 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2152 
2153 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2154 template <class R, class T , 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>
2155 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2156 
2157 template <class R, class T , 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>
2158 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2159 
2160 template <class R, class T , 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>
2161 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2162 #endif
2163 #endif
2164 
2165 template <class R, class T , 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>
2166 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2167 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2168 template <class R, class T , 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>
2169 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2170 #endif
2171 
2172 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2173 template <class R, class T , 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>
2174 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2175 
2176 template <class R, class T , 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>
2177 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2178 
2179 template <class R, class T , 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>
2180 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2181 
2182 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2183 template <class R, class T , 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>
2184 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2185 
2186 template <class R, class T , 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>
2187 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2188 
2189 template <class R, class T , 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>
2190 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2191 #endif
2192 #endif
2193 
2194 template <class R, class T , 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>
2195 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2196 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2197 template <class R, class T , 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>
2198 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2199 #endif
2200 
2201 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2202 template <class R, class T , 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>
2203 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2204 
2205 template <class R, class T , 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>
2206 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2207 
2208 template <class R, class T , 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>
2209 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2210 
2211 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2212 template <class R, class T , 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>
2213 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2214 
2215 template <class R, class T , 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>
2216 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2217 
2218 template <class R, class T , 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>
2219 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2220 #endif
2221 #endif
2222 
2223 template <class R, class T , 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>
2224 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2225 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2226 template <class R, class T , 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>
2227 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2228 #endif
2229 
2230 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2231 template <class R, class T , 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>
2232 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2233 
2234 template <class R, class T , 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>
2235 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2236 
2237 template <class R, class T , 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>
2238 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
2239 
2240 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2241 template <class R, class T , 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>
2242 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2243 
2244 template <class R, class T , 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>
2245 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2246 
2247 template <class R, class T , 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>
2248 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
2249 #endif
2250 #endif
2251 template <class R, class T , 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>
2252 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2253 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2254 template <class R, class T , 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>
2255 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2256 #endif
2257 
2258 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2259 template <class R, class T , 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>
2260 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2261 
2262 template <class R, class T , 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>
2263 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2264 
2265 template <class R, class T , 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>
2266 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2267 
2268 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2269 template <class R, class T , 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>
2270 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2271 
2272 template <class R, class T , 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>
2273 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2274 
2275 template <class R, class T , 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>
2276 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2277 #endif
2278 #endif
2279 
2280 template <class R, class T , 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>
2281 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2282 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2283 template <class R, class T , 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>
2284 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2285 #endif
2286 
2287 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2288 template <class R, class T , 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>
2289 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2290 
2291 template <class R, class T , 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>
2292 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2293 
2294 template <class R, class T , 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>
2295 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2296 
2297 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2298 template <class R, class T , 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>
2299 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2300 
2301 template <class R, class T , 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>
2302 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2303 
2304 template <class R, class T , 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>
2305 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2306 #endif
2307 #endif
2308 
2309 template <class R, class T , 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>
2310 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2311 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2312 template <class R, class T , 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>
2313 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2314 #endif
2315 
2316 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2317 template <class R, class T , 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>
2318 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2319 
2320 template <class R, class T , 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>
2321 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2322 
2323 template <class R, class T , 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>
2324 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2325 
2326 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2327 template <class R, class T , 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>
2328 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2329 
2330 template <class R, class T , 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>
2331 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2332 
2333 template <class R, class T , 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>
2334 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2335 #endif
2336 #endif
2337 
2338 template <class R, class T , 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>
2339 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2340 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2341 template <class R, class T , 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>
2342 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2343 #endif
2344 
2345 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2346 template <class R, class T , 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>
2347 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2348 
2349 template <class R, class T , 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>
2350 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2351 
2352 template <class R, class T , 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>
2353 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
2354 
2355 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2356 template <class R, class T , 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>
2357 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2358 
2359 template <class R, class T , 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>
2360 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2361 
2362 template <class R, class T , 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>
2363 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
2364 #endif
2365 #endif
2366 template <class R, class T , 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>
2367 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2368 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2369 template <class R, class T , 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>
2370 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2371 #endif
2372 
2373 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2374 template <class R, class T , 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>
2375 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2376 
2377 template <class R, class T , 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>
2378 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2379 
2380 template <class R, class T , 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>
2381 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2382 
2383 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2384 template <class R, class T , 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>
2385 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2386 
2387 template <class R, class T , 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>
2388 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2389 
2390 template <class R, class T , 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>
2391 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2392 #endif
2393 #endif
2394 
2395 template <class R, class T , 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>
2396 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2397 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2398 template <class R, class T , 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>
2399 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2400 #endif
2401 
2402 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2403 template <class R, class T , 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>
2404 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2405 
2406 template <class R, class T , 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>
2407 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2408 
2409 template <class R, class T , 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>
2410 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2411 
2412 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2413 template <class R, class T , 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>
2414 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2415 
2416 template <class R, class T , 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>
2417 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2418 
2419 template <class R, class T , 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>
2420 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2421 #endif
2422 #endif
2423 
2424 template <class R, class T , 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>
2425 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2426 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2427 template <class R, class T , 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>
2428 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2429 #endif
2430 
2431 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2432 template <class R, class T , 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>
2433 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2434 
2435 template <class R, class T , 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>
2436 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2437 
2438 template <class R, class T , 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>
2439 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2440 
2441 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2442 template <class R, class T , 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>
2443 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2444 
2445 template <class R, class T , 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>
2446 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2447 
2448 template <class R, class T , 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>
2449 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2450 #endif
2451 #endif
2452 
2453 template <class R, class T , 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>
2454 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2455 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2456 template <class R, class T , 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>
2457 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2458 #endif
2459 
2460 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2461 template <class R, class T , 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>
2462 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2463 
2464 template <class R, class T , 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>
2465 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2466 
2467 template <class R, class T , 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>
2468 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
2469 
2470 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2471 template <class R, class T , 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>
2472 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2473 
2474 template <class R, class T , 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>
2475 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2476 
2477 template <class R, class T , 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>
2478 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
2479 #endif
2480 #endif
2481 template <class R, class T , 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>
2482 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2483 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2484 template <class R, class T , 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>
2485 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2486 #endif
2487 
2488 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2489 template <class R, class T , 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>
2490 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2491 
2492 template <class R, class T , 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>
2493 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2494 
2495 template <class R, class T , 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>
2496 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2497 
2498 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2499 template <class R, class T , 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>
2500 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2501 
2502 template <class R, class T , 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>
2503 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2504 
2505 template <class R, class T , 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>
2506 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2507 #endif
2508 #endif
2509 
2510 template <class R, class T , 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>
2511 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2512 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2513 template <class R, class T , 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>
2514 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2515 #endif
2516 
2517 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2518 template <class R, class T , 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>
2519 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2520 
2521 template <class R, class T , 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>
2522 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2523 
2524 template <class R, class T , 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>
2525 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2526 
2527 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2528 template <class R, class T , 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>
2529 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2530 
2531 template <class R, class T , 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>
2532 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2533 
2534 template <class R, class T , 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>
2535 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2536 #endif
2537 #endif
2538 
2539 template <class R, class T , 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>
2540 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2541 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2542 template <class R, class T , 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>
2543 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2544 #endif
2545 
2546 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2547 template <class R, class T , 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>
2548 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2549 
2550 template <class R, class T , 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>
2551 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2552 
2553 template <class R, class T , 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>
2554 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2555 
2556 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2557 template <class R, class T , 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>
2558 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2559 
2560 template <class R, class T , 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>
2561 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2562 
2563 template <class R, class T , 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>
2564 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2565 #endif
2566 #endif
2567 
2568 template <class R, class T , 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>
2569 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2570 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2571 template <class R, class T , 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>
2572 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2573 #endif
2574 
2575 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2576 template <class R, class T , 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>
2577 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2578 
2579 template <class R, class T , 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>
2580 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2581 
2582 template <class R, class T , 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>
2583 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
2584 
2585 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2586 template <class R, class T , 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>
2587 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2588 
2589 template <class R, class T , 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>
2590 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2591 
2592 template <class R, class T , 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>
2593 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
2594 #endif
2595 #endif
2596 template <class R, class T , 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>
2597 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2598 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2599 template <class R, class T , 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>
2600 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2601 #endif
2602 
2603 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2604 template <class R, class T , 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>
2605 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2606 
2607 template <class R, class T , 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>
2608 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2609 
2610 template <class R, class T , 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>
2611 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2612 
2613 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2614 template <class R, class T , 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>
2615 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2616 
2617 template <class R, class T , 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>
2618 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2619 
2620 template <class R, class T , 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>
2621 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2622 #endif
2623 #endif
2624 
2625 template <class R, class T , 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>
2626 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2627 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2628 template <class R, class T , 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>
2629 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2630 #endif
2631 
2632 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2633 template <class R, class T , 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>
2634 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2635 
2636 template <class R, class T , 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>
2637 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2638 
2639 template <class R, class T , 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>
2640 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2641 
2642 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2643 template <class R, class T , 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>
2644 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2645 
2646 template <class R, class T , 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>
2647 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2648 
2649 template <class R, class T , 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>
2650 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2651 #endif
2652 #endif
2653 
2654 template <class R, class T , 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>
2655 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2656 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2657 template <class R, class T , 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>
2658 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2659 #endif
2660 
2661 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2662 template <class R, class T , 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>
2663 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2664 
2665 template <class R, class T , 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>
2666 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2667 
2668 template <class R, class T , 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>
2669 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2670 
2671 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2672 template <class R, class T , 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>
2673 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2674 
2675 template <class R, class T , 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>
2676 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2677 
2678 template <class R, class T , 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>
2679 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2680 #endif
2681 #endif
2682 
2683 template <class R, class T , 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>
2684 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2685 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2686 template <class R, class T , 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>
2687 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2688 #endif
2689 
2690 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2691 template <class R, class T , 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>
2692 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2693 
2694 template <class R, class T , 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>
2695 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2696 
2697 template <class R, class T , 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>
2698 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
2699 
2700 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2701 template <class R, class T , 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>
2702 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2703 
2704 template <class R, class T , 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>
2705 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2706 
2707 template <class R, class T , 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>
2708 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
2709 #endif
2710 #endif
2711 template <class R, class T , 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>
2712 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2713 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2714 template <class R, class T , 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>
2715 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2716 #endif
2717 
2718 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2719 template <class R, class T , 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>
2720 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2721 
2722 template <class R, class T , 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>
2723 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2724 
2725 template <class R, class T , 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>
2726 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2727 
2728 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2729 template <class R, class T , 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>
2730 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2731 
2732 template <class R, class T , 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>
2733 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2734 
2735 template <class R, class T , 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>
2736 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2737 #endif
2738 #endif
2739 
2740 template <class R, class T , 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>
2741 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2742 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2743 template <class R, class T , 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>
2744 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2745 #endif
2746 
2747 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2748 template <class R, class T , 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>
2749 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2750 
2751 template <class R, class T , 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>
2752 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2753 
2754 template <class R, class T , 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>
2755 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2756 
2757 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2758 template <class R, class T , 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>
2759 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2760 
2761 template <class R, class T , 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>
2762 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2763 
2764 template <class R, class T , 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>
2765 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2766 #endif
2767 #endif
2768 
2769 template <class R, class T , 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>
2770 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2771 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2772 template <class R, class T , 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>
2773 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2774 #endif
2775 
2776 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2777 template <class R, class T , 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>
2778 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2779 
2780 template <class R, class T , 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>
2781 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2782 
2783 template <class R, class T , 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>
2784 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2785 
2786 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2787 template <class R, class T , 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>
2788 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2789 
2790 template <class R, class T , 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>
2791 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2792 
2793 template <class R, class T , 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>
2794 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2795 #endif
2796 #endif
2797 
2798 template <class R, class T , 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>
2799 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2800 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2801 template <class R, class T , 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>
2802 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2803 #endif
2804 
2805 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2806 template <class R, class T , 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>
2807 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2808 
2809 template <class R, class T , 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>
2810 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2811 
2812 template <class R, class T , 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>
2813 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
2814 
2815 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2816 template <class R, class T , 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>
2817 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2818 
2819 template <class R, class T , 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>
2820 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2821 
2822 template <class R, class T , 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>
2823 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
2824 #endif
2825 #endif
2826 template <class R, class T , 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>
2827 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2828 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2829 template <class R, class T , 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>
2830 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2831 #endif
2832 
2833 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2834 template <class R, class T , 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>
2835 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2836 
2837 template <class R, class T , 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>
2838 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2839 
2840 template <class R, class T , 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>
2841 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2842 
2843 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2844 template <class R, class T , 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>
2845 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2846 
2847 template <class R, class T , 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>
2848 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2849 
2850 template <class R, class T , 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>
2851 struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2852 #endif
2853 #endif
2854 
2855 template <class R, class T , 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>
2856 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2857 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2858 template <class R, class T , 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>
2859 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2860 #endif
2861 
2862 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2863 template <class R, class T , 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>
2864 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2865 
2866 template <class R, class T , 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>
2867 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2868 
2869 template <class R, class T , 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>
2870 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2871 
2872 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2873 template <class R, class T , 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>
2874 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2875 
2876 template <class R, class T , 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>
2877 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2878 
2879 template <class R, class T , 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>
2880 struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2881 #endif
2882 #endif
2883 
2884 template <class R, class T , 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>
2885 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2886 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2887 template <class R, class T , 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>
2888 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2889 #endif
2890 
2891 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2892 template <class R, class T , 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>
2893 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2894 
2895 template <class R, class T , 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>
2896 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2897 
2898 template <class R, class T , 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>
2899 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2900 
2901 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2902 template <class R, class T , 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>
2903 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2904 
2905 template <class R, class T , 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>
2906 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2907 
2908 template <class R, class T , 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>
2909 struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2910 #endif
2911 #endif
2912 
2913 template <class R, class T , 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>
2914 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2915 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2916 template <class R, class T , 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>
2917 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2918 #endif
2919 
2920 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2921 template <class R, class T , 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>
2922 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2923 
2924 template <class R, class T , 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>
2925 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2926 
2927 template <class R, class T , 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>
2928 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
2929 
2930 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2931 template <class R, class T , 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>
2932 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2933 
2934 template <class R, class T , 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>
2935 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2936 
2937 template <class R, class T , 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>
2938 struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
2939 #endif
2940 #endif
2941 template <class R, class T , 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>
2942 struct rem_mem_pointer_impl<R (T::*)( 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) > { typedef R type( 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); };
2943 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2944 template <class R, class T , 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>
2945 struct rem_mem_pointer_impl<R (T::*)( 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 ...) > { typedef R type( 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 ...); };
2946 #endif
2947 
2948 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2949 template <class R, class T , 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>
2950 struct rem_mem_pointer_impl<R (T::*)( 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) const > { typedef R type( 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); };
2951 
2952 template <class R, class T , 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>
2953 struct rem_mem_pointer_impl<R (T::*)( 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) volatile > { typedef R type( 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); };
2954 
2955 template <class R, class T , 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>
2956 struct rem_mem_pointer_impl<R (T::*)( 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) const volatile > { typedef R type( 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); };
2957 
2958 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2959 template <class R, class T , 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>
2960 struct rem_mem_pointer_impl<R (T::*)( 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 ...) const > { typedef R type( 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 ...); };
2961 
2962 template <class R, class T , 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>
2963 struct rem_mem_pointer_impl<R (T::*)( 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 ...) volatile > { typedef R type( 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 ...); };
2964 
2965 template <class R, class T , 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>
2966 struct rem_mem_pointer_impl<R (T::*)( 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 ...) const volatile > { typedef R type( 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 ...); };
2967 #endif
2968 #endif
2969 
2970 template <class R, class T , 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>
2971 struct rem_mem_pointer_impl<R (T::*const)( 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) > { typedef R type( 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); };
2972 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2973 template <class R, class T , 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>
2974 struct rem_mem_pointer_impl<R (T::*const)( 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 ...) > { typedef R type( 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 ...); };
2975 #endif
2976 
2977 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
2978 template <class R, class T , 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>
2979 struct rem_mem_pointer_impl<R (T::*const)( 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) const > { typedef R type( 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); };
2980 
2981 template <class R, class T , 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>
2982 struct rem_mem_pointer_impl<R (T::*const)( 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) volatile > { typedef R type( 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); };
2983 
2984 template <class R, class T , 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>
2985 struct rem_mem_pointer_impl<R (T::*const)( 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) const volatile > { typedef R type( 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); };
2986 
2987 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
2988 template <class R, class T , 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>
2989 struct rem_mem_pointer_impl<R (T::*const)( 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 ...) const > { typedef R type( 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 ...); };
2990 
2991 template <class R, class T , 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>
2992 struct rem_mem_pointer_impl<R (T::*const)( 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 ...) volatile > { typedef R type( 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 ...); };
2993 
2994 template <class R, class T , 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>
2995 struct rem_mem_pointer_impl<R (T::*const)( 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 ...) const volatile > { typedef R type( 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 ...); };
2996 #endif
2997 #endif
2998 
2999 template <class R, class T , 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>
3000 struct rem_mem_pointer_impl<R (T::*const volatile)( 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) > { typedef R type( 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); };
3001 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3002 template <class R, class T , 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>
3003 struct rem_mem_pointer_impl<R (T::*const volatile)( 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 ...) > { typedef R type( 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 ...); };
3004 #endif
3005 
3006 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
3007 template <class R, class T , 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>
3008 struct rem_mem_pointer_impl<R (T::*const volatile)( 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) const > { typedef R type( 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); };
3009 
3010 template <class R, class T , 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>
3011 struct rem_mem_pointer_impl<R (T::*const volatile)( 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) volatile > { typedef R type( 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); };
3012 
3013 template <class R, class T , 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>
3014 struct rem_mem_pointer_impl<R (T::*const volatile)( 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) const volatile > { typedef R type( 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); };
3015 
3016 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3017 template <class R, class T , 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>
3018 struct rem_mem_pointer_impl<R (T::*const volatile)( 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 ...) const > { typedef R type( 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 ...); };
3019 
3020 template <class R, class T , 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>
3021 struct rem_mem_pointer_impl<R (T::*const volatile)( 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 ...) volatile > { typedef R type( 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 ...); };
3022 
3023 template <class R, class T , 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>
3024 struct rem_mem_pointer_impl<R (T::*const volatile)( 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 ...) const volatile > { typedef R type( 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 ...); };
3025 #endif
3026 #endif
3027 
3028 template <class R, class T , 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>
3029 struct rem_mem_pointer_impl<R (T::*volatile)( 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) > { typedef R type( 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); };
3030 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3031 template <class R, class T , 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>
3032 struct rem_mem_pointer_impl<R (T::*volatile)( 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 ...) > { typedef R type( 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 ...); };
3033 #endif
3034 
3035 #if !defined(BOOST_TT_NO_CV_FUNC_TEST)
3036 template <class R, class T , 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>
3037 struct rem_mem_pointer_impl<R (T::*volatile)( 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) const > { typedef R type( 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); };
3038 
3039 template <class R, class T , 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>
3040 struct rem_mem_pointer_impl<R (T::*volatile)( 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) volatile > { typedef R type( 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); };
3041 
3042 template <class R, class T , 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>
3043 struct rem_mem_pointer_impl<R (T::*volatile)( 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) const volatile > { typedef R type( 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); };
3044 
3045 #ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3046 template <class R, class T , 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>
3047 struct rem_mem_pointer_impl<R (T::*volatile)( 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 ...) const > { typedef R type( 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 ...); };
3048 
3049 template <class R, class T , 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>
3050 struct rem_mem_pointer_impl<R (T::*volatile)( 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 ...) volatile > { typedef R type( 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 ...); };
3051 
3052 template <class R, class T , 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>
3053 struct rem_mem_pointer_impl<R (T::*volatile)( 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 ...) const volatile > { typedef R type( 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 ...); };
3054 } // namespace detail
3055 #endif
3056 #endif
3057 #else
3058 
3059 #undef BOOST_STATIC_CONSTANT
3060 #define BOOST_PP_ITERATION_PARAMS_1 \
3061  (3, (0, 25, "boost/type_traits/remove_member_pointer.hpp"))
3062 #include BOOST_PP_ITERATE()
3063 #endif
3064 
3065 #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
3066 
3067 BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_member_pointer,T, typename detail::rem_mem_pointer_impl<T>::type)
3068 
3069 #endif
3070 
3071 } // namespace boost
3072 
3073 #include <boost/type_traits/detail/type_trait_undef.hpp>
3074 
3075 #endif // BOOST_TT_REMOVE_MEMBER_POINTER_HPP_INCLUDED
3076 
3077 #else
3078 #define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
3079 
3080 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3081 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3082 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3083 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3084 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3085 @#endif
3086 
3087 @#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
3088 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3089 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3090 
3091 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3092 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3093 
3094 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3095 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3096 
3097 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3098 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3099 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3100 
3101 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3102 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3103 
3104 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3105 struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3106 @#endif
3107 @#endif
3108 
3109 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3110 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3111 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3112 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3113 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3114 @#endif
3115 
3116 @#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
3117 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3118 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3119 
3120 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3121 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3122 
3123 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3124 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3125 
3126 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3127 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3128 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3129 
3130 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3131 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3132 
3133 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3134 struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3135 @#endif
3136 @#endif
3137 
3138 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3139 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3140 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3141 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3142 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3143 @#endif
3144 
3145 @#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
3146 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3147 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3148 
3149 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3150 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3151 
3152 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3153 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3154 
3155 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3156 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3157 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3158 
3159 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3160 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3161 
3162 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3163 struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3164 @#endif
3165 @#endif
3166 
3167 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3168 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3169 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3170 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3171 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3172 @#endif
3173 
3174 @#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
3175 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3176 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3177 
3178 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3179 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3180 
3181 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3182 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
3183 
3184 @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
3185 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3186 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3187 
3188 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3189 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3190 
3191 template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
3192 struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
3193 @#endif
3194 @#endif
3195 
3196 #undef BOOST_PP_COUNTER
3197 #endif // BOOST_PP_IS_ITERATING
3198