19 #ifndef _TESS_CALLBACK_SPECIALIZATIONS_H
20 #define _TESS_CALLBACK_SPECIALIZATIONS_H
32 virtual void Run() = 0;
42 template <
bool del,
class R,
class T>
61 R result = (object_->*member_)();
64 R result = (object_->*member_)();
73 template <
bool del,
class T>
93 (object_->*member_)();
95 (object_->*member_)();
104 template <
class T1,
class T2,
class R>
107 const T1* obj, R (T2::*member)()
const) {
114 template <
class T1,
class T2,
class R>
117 const T1* obj, R (T2::*member)()
const) {
123 template <
bool del,
class R,
class T>
142 R result = (object_->*member_)();
145 R result = (object_->*member_)();
154 template <
bool del,
class T>
174 (object_->*member_)();
176 (object_->*member_)();
185 template <
class T1,
class T2,
class R>
188 T1* obj, R (T2::*member)() ) {
195 template <
class T1,
class T2,
class R>
198 T1* obj, R (T2::*member)() ) {
204 template <
bool del,
class R>
216 : function_(function) {
221 R result = (*function_)();
224 R result = (*function_)();
246 : function_(function) {
277 virtual void Run(A1) = 0;
280 template <
class R,
class A1>
284 virtual R
Run(A1) = 0;
287 template <
bool del,
class R,
class T,
class A1>
306 R result = (object_->*member_)(a1);
309 R result = (object_->*member_)(a1);
318 template <
bool del,
class T,
class A1>
338 (object_->*member_)(a1);
340 (object_->*member_)(a1);
349 template <
class T1,
class T2,
class R,
class A1>
352 const T1* obj, R (T2::*member)(A1)
const) {
359 template <
class T1,
class T2,
class R,
class A1>
362 const T1* obj, R (T2::*member)(A1)
const) {
368 template <
bool del,
class R,
class T,
class A1>
387 R result = (object_->*member_)(a1);
390 R result = (object_->*member_)(a1);
399 template <
bool del,
class T,
class A1>
419 (object_->*member_)(a1);
421 (object_->*member_)(a1);
430 template <
class T1,
class T2,
class R,
class A1>
433 T1* obj, R (T2::*member)(A1) ) {
440 template <
class T1,
class T2,
class R,
class A1>
443 T1* obj, R (T2::*member)(A1) ) {
449 template <
bool del,
class R,
class A1>
461 : function_(function) {
466 R result = (*function_)(a1);
469 R result = (*function_)(a1);
478 template <
bool del,
class A1>
491 : function_(function) {
506 template <
class R,
class A1>
512 template <
class R,
class A1>
518 template <
class A1,
class A2>
522 virtual void Run(A1,A2) = 0;
525 template <
class R,
class A1,
class A2>
529 virtual R
Run(A1,A2) = 0;
532 template <
bool del,
class R,
class T,
class A1,
class A2>
549 virtual R
Run(A1 a1,A2 a2) {
551 R result = (object_->*member_)(a1,a2);
554 R result = (object_->*member_)(a1,a2);
563 template <
bool del,
class T,
class A1,
class A2>
581 virtual void Run(A1 a1,A2 a2) {
583 (object_->*member_)(a1,a2);
585 (object_->*member_)(a1,a2);
594 template <
class T1,
class T2,
class R,
class A1,
class A2>
597 const T1* obj, R (T2::*member)(A1,A2)
const) {
604 template <
class T1,
class T2,
class R,
class A1,
class A2>
607 const T1* obj, R (T2::*member)(A1,A2)
const) {
613 template <
bool del,
class R,
class T,
class A1,
class A2>
630 virtual R
Run(A1 a1,A2 a2) {
632 R result = (object_->*member_)(a1,a2);
635 R result = (object_->*member_)(a1,a2);
644 template <
bool del,
class T,
class A1,
class A2>
662 virtual void Run(A1 a1,A2 a2) {
664 (object_->*member_)(a1,a2);
666 (object_->*member_)(a1,a2);
675 template <
class T1,
class T2,
class R,
class A1,
class A2>
678 T1* obj, R (T2::*member)(A1,A2) ) {
685 template <
class T1,
class T2,
class R,
class A1,
class A2>
688 T1* obj, R (T2::*member)(A1,A2) ) {
694 template <
bool del,
class R,
class A1,
class A2>
706 : function_(function) {
709 virtual R
Run(A1 a1,A2 a2) {
711 R result = (*function_)(a1,a2);
714 R result = (*function_)(a1,a2);
723 template <
bool del,
class A1,
class A2>
736 : function_(function) {
739 virtual void Run(A1 a1,A2 a2) {
751 template <
class R,
class A1,
class A2>
757 template <
class R,
class A1,
class A2>
763 template <
class A1,
class A2,
class A3>
767 virtual void Run(A1,A2,A3) = 0;
770 template <
class R,
class A1,
class A2,
class A3>
774 virtual R
Run(A1,A2,A3) = 0;
777 template <
bool del,
class R,
class T,
class A1,
class A2,
class A3>
794 virtual R
Run(A1 a1,A2 a2,A3 a3) {
796 R result = (object_->*member_)(a1,a2,a3);
799 R result = (object_->*member_)(a1,a2,a3);
808 template <
bool del,
class T,
class A1,
class A2,
class A3>
826 virtual void Run(A1 a1,A2 a2,A3 a3) {
828 (object_->*member_)(a1,a2,a3);
830 (object_->*member_)(a1,a2,a3);
839 template <
class T1,
class T2,
class R,
class A1,
class A2,
class A3>
842 const T1* obj, R (T2::*member)(A1,A2,A3)
const) {
849 template <
class T1,
class T2,
class R,
class A1,
class A2,
class A3>
852 const T1* obj, R (T2::*member)(A1,A2,A3)
const) {
858 template <
bool del,
class R,
class T,
class A1,
class A2,
class A3>
875 virtual R
Run(A1 a1,A2 a2,A3 a3) {
877 R result = (object_->*member_)(a1,a2,a3);
880 R result = (object_->*member_)(a1,a2,a3);
889 template <
bool del,
class T,
class A1,
class A2,
class A3>
907 virtual void Run(A1 a1,A2 a2,A3 a3) {
909 (object_->*member_)(a1,a2,a3);
911 (object_->*member_)(a1,a2,a3);
920 template <
class T1,
class T2,
class R,
class A1,
class A2,
class A3>
923 T1* obj, R (T2::*member)(A1,A2,A3) ) {
930 template <
class T1,
class T2,
class R,
class A1,
class A2,
class A3>
933 T1* obj, R (T2::*member)(A1,A2,A3) ) {
939 template <
bool del,
class R,
class A1,
class A2,
class A3>
951 : function_(function) {
954 virtual R
Run(A1 a1,A2 a2,A3 a3) {
956 R result = (*function_)(a1,a2,a3);
959 R result = (*function_)(a1,a2,a3);
968 template <
bool del,
class A1,
class A2,
class A3>
981 : function_(function) {
984 virtual void Run(A1 a1,A2 a2,A3 a3) {
986 (*function_)(a1,a2,a3);
988 (*function_)(a1,a2,a3);
996 template <
class R,
class A1,
class A2,
class A3>
1002 template <
class R,
class A1,
class A2,
class A3>
1015 template <
typename T>
1020 template <
bool del,
class R,
class T,
class P1,
class A1,
class A2,
class A3>
1035 : object_(object), member_(member), p1_(p1) { }
1037 virtual R
Run(A1 a1, A2 a2, A3 a3) {
1039 R result = (object_->*member_)(p1_,a1,a2,a3);
1042 R result = (object_->*member_)(p1_,a1,a2,a3);
1051 template <
bool del,
class T,
class P1,
class A1,
class A2,
class A3>
1066 : object_(object), member_(member), p1_(p1) { }
1068 virtual void Run(A1 a1, A2 a2, A3 a3) {
1070 (object_->*member_)(p1_,a1,a2,a3);
1072 (object_->*member_)(p1_,a1,a2,a3);
1081 template <
class T1,
class T2,
class R,
class P1,
class A1,
class A2,
class A3>
1089 template <
class T1,
class T2,
class R,
class P1,
class A1,
class A2,
class A3>
1096 template <
bool del,
class R,
class T,
class P1,
class A1,
class A2,
class A3>
1110 : object_(object), member_(member), p1_(p1) { }
1112 virtual R
Run(A1 a1, A2 a2, A3 a3) {
1114 R result = (object_->*member_)(p1_,a1,a2,a3);
1117 R result = (object_->*member_)(p1_,a1,a2,a3);
1126 template <
bool del,
class T,
class P1,
class A1,
class A2,
class A3>
1141 : object_(object), member_(member), p1_(p1) { }
1143 virtual void Run(A1 a1, A2 a2, A3 a3) {
1145 (object_->*member_)(p1_,a1,a2,a3);
1147 (object_->*member_)(p1_,a1,a2,a3);
1156 template <
class T1,
class T2,
class R,
class P1,
class A1,
class A2,
class A3>
1164 template <
class T1,
class T2,
class R,
class P1,
class A1,
class A2,
class A3>
1171 template <
bool del,
class R,
class P1,
class A1,
class A2,
class A3>
1183 : function_(function), p1_(p1) { }
1185 virtual R
Run(A1 a1, A2 a2, A3 a3) {
1187 R result = (*function_)(p1_,a1,a2,a3);
1190 R result = (*function_)(p1_,a1,a2,a3);
1199 template <
bool del,
class P1,
class A1,
class A2,
class A3>
1212 : function_(function), p1_(p1) { }
1214 virtual void Run(A1 a1, A2 a2, A3 a3) {
1216 (*function_)(p1_,a1,a2,a3);
1218 (*function_)(p1_,a1,a2,a3);
1226 template <
class R,
class P1,
class A1,
class A2,
class A3>
1232 template <
class R,
class P1,
class A1,
class A2,
class A3>