1#ifndef CLASSDESC_FUNCTIONDB6
2#define CLASSDESC_FUNCTIONDB6
3template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
4struct Arg<R (*)(A1,A2,A3,A4,A5,A6), 1>
10template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
11struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6), 1>
17template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
18struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const, 1>
24#if defined(__cplusplus) && __cplusplus>=201703L
26template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
27struct Arg<R (*)(A1,A2,A3,A4,A5,A6)
noexcept, 1>
33template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
34struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept, 1>
40template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
41struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept, 1>
47template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
48struct Arg<R (*)(A1,A2,A3,A4,A5,A6), 2>
54template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
55struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6), 2>
61template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
62struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const, 2>
68#if defined(__cplusplus) && __cplusplus>=201703L
70template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
71struct Arg<R (*)(A1,A2,A3,A4,A5,A6)
noexcept, 2>
77template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
78struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept, 2>
84template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
85struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept, 2>
91template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
92struct Arg<R (*)(A1,A2,A3,A4,A5,A6), 3>
98template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
99struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6), 3>
105template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
106struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const, 3>
112#if defined(__cplusplus) && __cplusplus>=201703L
114template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
115struct Arg<R (*)(A1,A2,A3,A4,A5,A6)
noexcept, 3>
121template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
122struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept, 3>
128template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
129struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept, 3>
135template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
136struct Arg<R (*)(A1,A2,A3,A4,A5,A6), 4>
142template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
143struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6), 4>
149template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
150struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const, 4>
156#if defined(__cplusplus) && __cplusplus>=201703L
158template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
159struct Arg<R (*)(A1,A2,A3,A4,A5,A6)
noexcept, 4>
165template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
166struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept, 4>
172template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
173struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept, 4>
179template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
180struct Arg<R (*)(A1,A2,A3,A4,A5,A6), 5>
186template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
187struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6), 5>
193template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
194struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const, 5>
200#if defined(__cplusplus) && __cplusplus>=201703L
202template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
203struct Arg<R (*)(A1,A2,A3,A4,A5,A6)
noexcept, 5>
209template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
210struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept, 5>
216template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
217struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept, 5>
223template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
224struct Arg<R (*)(A1,A2,A3,A4,A5,A6), 6>
230template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
231struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6), 6>
237template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
238struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const, 6>
244#if defined(__cplusplus) && __cplusplus>=201703L
246template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
247struct Arg<R (*)(A1,A2,A3,A4,A5,A6)
noexcept, 6>
253template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
254struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept, 6>
260template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
261struct Arg<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept, 6>
267template <
class F,
template<
class>
class P>
270 static const bool value=
true && P<typename Arg<F,1>::T>::value && P<typename Arg<F,2>::T>::value && P<typename Arg<F,3>::T>::value && P<typename Arg<F,4>::T>::value && P<typename Arg<F,5>::T>::value && P<typename Arg<F,6>::T>::value;
274template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
275struct Arity<R (*)(A1,A2,A3,A4,A5,A6)>
277 static const int V=6;
278 static const int value=6;
281template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
282struct Return<R (*)(A1,A2,A3,A4,A5,A6)>
288template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
289struct Arity<R (* C::*)(A1,A2,A3,A4,A5,A6)>
291 static const int V=6;
292 static const int value=6;
295template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
296struct Return<R (* C::*)(A1,A2,A3,A4,A5,A6)>
302template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
303struct Arity<R (C::*)(A1,A2,A3,A4,A5,A6)>
305 static const int V=6;
306 static const int value=6;
309template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
310struct Return<R (C::*)(A1,A2,A3,A4,A5,A6)>
316template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
317struct Arity<R (C::*)(A1,A2,A3,A4,A5,A6) const>
319 static const int V=6;
320 static const int value=6;
323template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
324struct Return<R (C::*)(A1,A2,A3,A4,A5,A6) const>
330template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
331struct ClassOf<R (C::*)(A1,A2,A3,A4,A5,A6)>
337template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
338struct ClassOf<R (*C::*)(A1,A2,A3,A4,A5,A6)>
344template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
345struct ClassOf<R (C::*)(A1,A2,A3,A4,A5,A6) const>
351template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
352struct is_member_function_ptr<R (C::*)(A1,A2,A3,A4,A5,A6)>
354 static const bool value=
true;
357template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
358struct is_member_function_ptr<R (C::*)(A1,A2,A3,A4,A5,A6) const>
360 static const bool value=
true;
363template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
364struct is_const_method<R (C::*)(A1,A2,A3,A4,A5,A6) const>
366 static const bool value=
true;
369template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
370struct is_nonmember_function_ptr<R (*)(A1,A2,A3,A4,A5,A6)>
372 static const bool value=
true;
375template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
376struct is_nonmember_function_ptr<R (*C::*)(A1,A2,A3,A4,A5,A6)>
378 static const bool value=
true;
381template <
class C,
class D,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
382class bound_method<C, R (D::*)(A1,A2,A3,A4,A5,A6)>
384 typedef R (D::*M)(A1,A2,A3,A4,A5,A6);
388 static const int arity=6;
390 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
391 bound_method(C& obj, M method): obj(&obj), method(method) {}
392 typename enable_if<Not<classdesc::is_const<C> >, R>::T
393 operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {
return (obj->*method)(a1,a2,a3,a4,a5,a6);}
394 void rebind(C& newObj) {obj=&newObj;}
395 static const bool is_const=
false;
398template <
class C,
class D,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
399class bound_method<const C, R (D::*)(A1,A2,A3,A4,A5,A6)>
401 typedef R (D::*M)(A1,A2,A3,A4,A5,A6);
405 static const int arity=6;
407 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
408 bound_method(
const C& obj, M method): obj(&obj), method(method) {}
409 R operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {
410 throw std::runtime_error(
"cannot call method, inappropriate argument type");
412 void rebind(C& newObj) {obj=&newObj;}
413 static const bool is_const=
false;
416template <
class C,
class D,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
417class bound_method<C, R (D::*)(A1,A2,A3,A4,A5,A6) const>
419 typedef R (D::*M)(A1,A2,A3,A4,A5,A6)
const;
423 static const int arity=6;
425 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
426 bound_method(C& obj, M method): obj(obj), method(method) {}
427 R operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {
return (obj.*method)(a1,a2,a3,a4,a5,a6);}
428 static const bool is_const=
true;
431#if defined(__cplusplus) && __cplusplus>=201703L
434template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
435struct Arity<R (*)(A1,A2,A3,A4,A5,A6)
noexcept>
437 static const int V=6;
438 static const int value=6;
441template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
442struct Return<R (*)(A1,A2,A3,A4,A5,A6)
noexcept>
448template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
449struct Arity<R (* C::*)(A1,A2,A3,A4,A5,A6)
noexcept>
451 static const int V=6;
452 static const int value=6;
455template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
456struct Return<R (* C::*)(A1,A2,A3,A4,A5,A6)
noexcept>
462template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
463struct Arity<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept>
465 static const int V=6;
466 static const int value=6;
469template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
470struct Return<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept>
476template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
477struct Arity<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept>
479 static const int V=6;
480 static const int value=6;
483template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
484struct Return<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept>
490template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
491struct ClassOf<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept>
497template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
498struct ClassOf<R (*C::*)(A1,A2,A3,A4,A5,A6)
noexcept>
504template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
505struct ClassOf<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept>
511template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
512struct is_member_function_ptr<R (C::*)(A1,A2,A3,A4,A5,A6) noexcept>
514 static const bool value=
true;
517template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
518struct is_member_function_ptr<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept>
520 static const bool value=
true;
523template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
524struct is_const_method<R (C::*)(A1,A2,A3,A4,A5,A6) const noexcept>
526 static const bool value=
true;
529template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
530struct is_nonmember_function_ptr<R (*)(A1,A2,A3,A4,A5,A6)
noexcept>
532 static const bool value=
true;
535template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
536struct is_nonmember_function_ptr<R (*C::*)(A1,A2,A3,A4,A5,A6)
noexcept>
538 static const bool value=
true;
541template <
class C,
class D,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
542class bound_method<C, R (D::*)(A1,A2,A3,A4,A5,A6) noexcept>
544 typedef R (D::*M)(A1,A2,A3,A4,A5,A6);
548 static const int arity=6;
550 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
551 bound_method(C& obj, M method): obj(&obj), method(method) {}
552 typename enable_if<Not<classdesc::is_const<C> >, R>::T
553 operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {
return (obj->*method)(a1,a2,a3,a4,a5,a6);}
554 void rebind(C& newObj) {obj=&newObj;}
555 static const bool is_const=
false;
558template <
class C,
class D,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
559class bound_method<C, void (D::*)(A1,A2,A3,A4,A5,A6) noexcept>
561 typedef void (D::*M)(A1,A2,A3,A4,A5,A6);
565 static const int arity=6;
567 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
568 bound_method(C& obj, M method): obj(&obj), method(method) {}
569 typename enable_if<Not<classdesc::is_const<C> > >::T
570 operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {(obj->*method)(a1,a2,a3,a4,a5,a6);}
571 void rebind(C& newObj) {obj=&newObj;}
572 static const bool is_const=
false;
575template <
class C,
class D,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
576class bound_method<const C, R (D::*)(A1,A2,A3,A4,A5,A6) noexcept>
578 typedef R (D::*M)(A1,A2,A3,A4,A5,A6);
582 static const int arity=6;
584 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
585 bound_method(
const C& obj, M method): obj(&obj), method(method) {}
586 R operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {
587 throw std::runtime_error(
"cannot call method, inappropriate argument type");
589 void rebind(C& newObj) {obj=&newObj;}
590 static const bool is_const=
false;
593template <
class C,
class D,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
594class bound_method<const C, void (D::*)(A1,A2,A3,A4,A5,A6) noexcept>
596 typedef void (D::*M)(A1,A2,A3,A4,A5,A6);
600 static const int arity=6;
602 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
603 bound_method(
const C& obj, M method): obj(&obj), method(method) {}
604 typename enable_if<Not<classdesc::is_const<C> > >::T
605 operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {
606 throw std::runtime_error(
"cannot call method, inappropriate argument type");
608 void rebind(C& newObj) {obj=&newObj;}
609 static const bool is_const=
false;
612template <
class C,
class D,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
613class bound_method<C, R (D::*)(A1,A2,A3,A4,A5,A6) const noexcept>
615 typedef R (D::*M)(A1,A2,A3,A4,A5,A6)
const;
619 static const int arity=6;
621 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
622 bound_method(C& obj, M method): obj(obj), method(method) {}
623 R operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {
return (obj.*method)(a1,a2,a3,a4,a5,a6);}
624 static const bool is_const=
true;
627template <
class C,
class D,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
628class bound_method<C, void (D::*)(A1,A2,A3,A4,A5,A6) const noexcept>
630 typedef void (D::*M)(A1,A2,A3,A4,A5,A6)
const;
634 static const int arity=6;
636 template <
int i>
struct Arg:
public functional::Arg<M,i> {};
637 bound_method(C& obj, M method): obj(obj), method(method) {}
638 void operator()(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5,A6 a6)
const {(obj.*method)(a1,a2,a3,a4,a5,a6);}
639 static const bool is_const=
true;
643template <
class F,
class Args>
644typename enable_if<And<AllArgs<F, is_rvalue>, Eq<Arity<F>::value, 6> >,
645 typename Return<F>::T>::T
646apply_nonvoid_fn(F f, Args& a, Fdummy<F> dum=0)
648 return f(a[0],a[1],a[2],a[3],a[4],a[5]);
657template <
class F,
class Args>
658typename enable_if<And<AllArgs<F, is_rvalue>, Eq<Arity<F>::value, 6> >,
660apply_void_fn(F f, Args& a, Fdummy<F> dum=0)
662 f(a[0],a[1],a[2],a[3],a[4],a[5]);
665template <
class Buffer,
class F>
666typename enable_if<Eq<Arity<F>::value, 6>,
typename Return<F>::T>::T
667callOnBuffer(Buffer& buffer, F f)
669 typename remove_const<typename remove_reference<typename Arg<F,1>::T>::type>::type a1;
671 typename remove_const<typename remove_reference<typename Arg<F,2>::T>::type>::type a2;
673 typename remove_const<typename remove_reference<typename Arg<F,3>::T>::type>::type a3;
675 typename remove_const<typename remove_reference<typename Arg<F,4>::T>::type>::type a4;
677 typename remove_const<typename remove_reference<typename Arg<F,5>::T>::type>::type a5;
679 typename remove_const<typename remove_reference<typename Arg<F,6>::T>::type>::type a6;
Definition functiondb6.h:425
Definition functiondb6.h:390
Definition functiondb6.h:407