]> git.tdb.fi Git - ext/sigc++-2.0.git/blob - untracked/sigc++/adaptors/lambda/select.h
Import libsigc++ 2.10.8 sources
[ext/sigc++-2.0.git] / untracked / sigc++ / adaptors / lambda / select.h
1 // -*- c++ -*-
2 /* Do not edit! -- generated file */
3 #ifndef _SIGC_LAMBDA_SELECT_HPP_
4 #define _SIGC_LAMBDA_SELECT_HPP_
5 #include <sigc++/adaptors/lambda/base.h>
6
7 #ifndef SIGCXX_DISABLE_DEPRECATED
8
9 namespace sigc {
10
11 #ifndef DOXYGEN_SHOULD_SKIP_THIS
12 namespace internal {
13 struct lambda_select1 : public lambda_base
14 {
15   template <class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void>
16   struct deduce_result_type
17     { typedef T_arg1 type; };
18   typedef void result_type; // no operator ()() overload
19
20   void operator ()() const; // not implemented
21   template <class T_arg1>
22   T_arg1 operator ()(T_arg1 _A_1) const { return _A_1; }
23
24   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
25   template <class T_arg1>
26   //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1) const { return operator()( _A_1 ); }
27   T_arg1 sun_forte_workaround(T_arg1 _A_1) const { return _A_1; }
28   #endif
29   
30   template <class T_arg1, class T_arg2>
31   T_arg1 operator ()(T_arg1 _A_1, T_arg2) const { return _A_1; }
32
33   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
34   template <class T_arg1, class T_arg2>
35   //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2) const { return operator()( _A_1, _A_2 ); }
36   T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2) const { return _A_1; }
37   #endif
38   
39   template <class T_arg1, class T_arg2, class T_arg3>
40   T_arg1 operator ()(T_arg1 _A_1, T_arg2, T_arg3) const { return _A_1; }
41
42   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
43   template <class T_arg1, class T_arg2, class T_arg3>
44   //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3) const { return operator()( _A_1, _A_2, _A_3 ); }
45   T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2, T_arg3) const { return _A_1; }
46   #endif
47   
48   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
49   T_arg1 operator ()(T_arg1 _A_1, T_arg2, T_arg3, T_arg4) const { return _A_1; }
50
51   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
52   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
53   //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4) const { return operator()( _A_1, _A_2, _A_3, _A_4 ); }
54   T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2, T_arg3, T_arg4) const { return _A_1; }
55   #endif
56   
57   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
58   T_arg1 operator ()(T_arg1 _A_1, T_arg2, T_arg3, T_arg4, T_arg5) const { return _A_1; }
59
60   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
61   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
62   //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5 ); }
63   T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2, T_arg3, T_arg4, T_arg5) const { return _A_1; }
64   #endif
65   
66   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
67   T_arg1 operator ()(T_arg1 _A_1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6) const { return _A_1; }
68
69   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
70   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
71   //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6 ); }
72   T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6) const { return _A_1; }
73   #endif
74   
75   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
76   T_arg1 operator ()(T_arg1 _A_1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7) const { return _A_1; }
77
78   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
79   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
80   //Does not work: T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6, T_arg7 _A_7) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6, _A_7 ); }
81   T_arg1 sun_forte_workaround(T_arg1 _A_1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7) const { return _A_1; }
82   #endif
83   
84 };
85
86 struct lambda_select2 : public lambda_base
87 {
88   template <class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void>
89   struct deduce_result_type
90     { typedef T_arg2 type; };
91   typedef void result_type; // no operator ()() overload
92
93   void operator ()() const; // not implemented
94   template <class T_arg1, class T_arg2>
95   T_arg2 operator ()(T_arg1, T_arg2 _A_2) const { return _A_2; }
96
97   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
98   template <class T_arg1, class T_arg2>
99   //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2) const { return operator()( _A_1, _A_2 ); }
100   T_arg2 sun_forte_workaround(T_arg1, T_arg2 _A_2) const { return _A_2; }
101   #endif
102   
103   template <class T_arg1, class T_arg2, class T_arg3>
104   T_arg2 operator ()(T_arg1, T_arg2 _A_2, T_arg3) const { return _A_2; }
105
106   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
107   template <class T_arg1, class T_arg2, class T_arg3>
108   //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3) const { return operator()( _A_1, _A_2, _A_3 ); }
109   T_arg2 sun_forte_workaround(T_arg1, T_arg2 _A_2, T_arg3) const { return _A_2; }
110   #endif
111   
112   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
113   T_arg2 operator ()(T_arg1, T_arg2 _A_2, T_arg3, T_arg4) const { return _A_2; }
114
115   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
116   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
117   //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4) const { return operator()( _A_1, _A_2, _A_3, _A_4 ); }
118   T_arg2 sun_forte_workaround(T_arg1, T_arg2 _A_2, T_arg3, T_arg4) const { return _A_2; }
119   #endif
120   
121   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
122   T_arg2 operator ()(T_arg1, T_arg2 _A_2, T_arg3, T_arg4, T_arg5) const { return _A_2; }
123
124   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
125   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
126   //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5 ); }
127   T_arg2 sun_forte_workaround(T_arg1, T_arg2 _A_2, T_arg3, T_arg4, T_arg5) const { return _A_2; }
128   #endif
129   
130   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
131   T_arg2 operator ()(T_arg1, T_arg2 _A_2, T_arg3, T_arg4, T_arg5, T_arg6) const { return _A_2; }
132
133   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
134   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
135   //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6 ); }
136   T_arg2 sun_forte_workaround(T_arg1, T_arg2 _A_2, T_arg3, T_arg4, T_arg5, T_arg6) const { return _A_2; }
137   #endif
138   
139   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
140   T_arg2 operator ()(T_arg1, T_arg2 _A_2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7) const { return _A_2; }
141
142   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
143   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
144   //Does not work: T_arg2 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6, T_arg7 _A_7) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6, _A_7 ); }
145   T_arg2 sun_forte_workaround(T_arg1, T_arg2 _A_2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7) const { return _A_2; }
146   #endif
147   
148 };
149
150 struct lambda_select3 : public lambda_base
151 {
152   template <class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void>
153   struct deduce_result_type
154     { typedef T_arg3 type; };
155   typedef void result_type; // no operator ()() overload
156
157   void operator ()() const; // not implemented
158   template <class T_arg1, class T_arg2, class T_arg3>
159   T_arg3 operator ()(T_arg1, T_arg2, T_arg3 _A_3) const { return _A_3; }
160
161   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
162   template <class T_arg1, class T_arg2, class T_arg3>
163   //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3) const { return operator()( _A_1, _A_2, _A_3 ); }
164   T_arg3 sun_forte_workaround(T_arg1, T_arg2, T_arg3 _A_3) const { return _A_3; }
165   #endif
166   
167   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
168   T_arg3 operator ()(T_arg1, T_arg2, T_arg3 _A_3, T_arg4) const { return _A_3; }
169
170   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
171   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
172   //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4) const { return operator()( _A_1, _A_2, _A_3, _A_4 ); }
173   T_arg3 sun_forte_workaround(T_arg1, T_arg2, T_arg3 _A_3, T_arg4) const { return _A_3; }
174   #endif
175   
176   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
177   T_arg3 operator ()(T_arg1, T_arg2, T_arg3 _A_3, T_arg4, T_arg5) const { return _A_3; }
178
179   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
180   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
181   //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5 ); }
182   T_arg3 sun_forte_workaround(T_arg1, T_arg2, T_arg3 _A_3, T_arg4, T_arg5) const { return _A_3; }
183   #endif
184   
185   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
186   T_arg3 operator ()(T_arg1, T_arg2, T_arg3 _A_3, T_arg4, T_arg5, T_arg6) const { return _A_3; }
187
188   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
189   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
190   //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6 ); }
191   T_arg3 sun_forte_workaround(T_arg1, T_arg2, T_arg3 _A_3, T_arg4, T_arg5, T_arg6) const { return _A_3; }
192   #endif
193   
194   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
195   T_arg3 operator ()(T_arg1, T_arg2, T_arg3 _A_3, T_arg4, T_arg5, T_arg6, T_arg7) const { return _A_3; }
196
197   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
198   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
199   //Does not work: T_arg3 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6, T_arg7 _A_7) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6, _A_7 ); }
200   T_arg3 sun_forte_workaround(T_arg1, T_arg2, T_arg3 _A_3, T_arg4, T_arg5, T_arg6, T_arg7) const { return _A_3; }
201   #endif
202   
203 };
204
205 struct lambda_select4 : public lambda_base
206 {
207   template <class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void>
208   struct deduce_result_type
209     { typedef T_arg4 type; };
210   typedef void result_type; // no operator ()() overload
211
212   void operator ()() const; // not implemented
213   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
214   T_arg4 operator ()(T_arg1, T_arg2, T_arg3, T_arg4 _A_4) const { return _A_4; }
215
216   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
217   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4>
218   //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4) const { return operator()( _A_1, _A_2, _A_3, _A_4 ); }
219   T_arg4 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4 _A_4) const { return _A_4; }
220   #endif
221   
222   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
223   T_arg4 operator ()(T_arg1, T_arg2, T_arg3, T_arg4 _A_4, T_arg5) const { return _A_4; }
224
225   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
226   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
227   //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5 ); }
228   T_arg4 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4 _A_4, T_arg5) const { return _A_4; }
229   #endif
230   
231   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
232   T_arg4 operator ()(T_arg1, T_arg2, T_arg3, T_arg4 _A_4, T_arg5, T_arg6) const { return _A_4; }
233
234   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
235   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
236   //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6 ); }
237   T_arg4 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4 _A_4, T_arg5, T_arg6) const { return _A_4; }
238   #endif
239   
240   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
241   T_arg4 operator ()(T_arg1, T_arg2, T_arg3, T_arg4 _A_4, T_arg5, T_arg6, T_arg7) const { return _A_4; }
242
243   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
244   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
245   //Does not work: T_arg4 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6, T_arg7 _A_7) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6, _A_7 ); }
246   T_arg4 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4 _A_4, T_arg5, T_arg6, T_arg7) const { return _A_4; }
247   #endif
248   
249 };
250
251 struct lambda_select5 : public lambda_base
252 {
253   template <class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void>
254   struct deduce_result_type
255     { typedef T_arg5 type; };
256   typedef void result_type; // no operator ()() overload
257
258   void operator ()() const; // not implemented
259   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
260   T_arg5 operator ()(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 _A_5) const { return _A_5; }
261
262   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
263   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
264   //Does not work: T_arg5 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5 ); }
265   T_arg5 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 _A_5) const { return _A_5; }
266   #endif
267   
268   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
269   T_arg5 operator ()(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 _A_5, T_arg6) const { return _A_5; }
270
271   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
272   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
273   //Does not work: T_arg5 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6 ); }
274   T_arg5 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 _A_5, T_arg6) const { return _A_5; }
275   #endif
276   
277   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
278   T_arg5 operator ()(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 _A_5, T_arg6, T_arg7) const { return _A_5; }
279
280   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
281   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
282   //Does not work: T_arg5 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6, T_arg7 _A_7) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6, _A_7 ); }
283   T_arg5 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 _A_5, T_arg6, T_arg7) const { return _A_5; }
284   #endif
285   
286 };
287
288 struct lambda_select6 : public lambda_base
289 {
290   template <class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void>
291   struct deduce_result_type
292     { typedef T_arg6 type; };
293   typedef void result_type; // no operator ()() overload
294
295   void operator ()() const; // not implemented
296   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
297   T_arg6 operator ()(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6 _A_6) const { return _A_6; }
298
299   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
300   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
301   //Does not work: T_arg6 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6 ); }
302   T_arg6 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6 _A_6) const { return _A_6; }
303   #endif
304   
305   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
306   T_arg6 operator ()(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6 _A_6, T_arg7) const { return _A_6; }
307
308   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
309   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
310   //Does not work: T_arg6 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6, T_arg7 _A_7) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6, _A_7 ); }
311   T_arg6 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6 _A_6, T_arg7) const { return _A_6; }
312   #endif
313   
314 };
315
316 struct lambda_select7 : public lambda_base
317 {
318   template <class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void>
319   struct deduce_result_type
320     { typedef T_arg7 type; };
321   typedef void result_type; // no operator ()() overload
322
323   void operator ()() const; // not implemented
324   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
325   T_arg7 operator ()(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 _A_7) const { return _A_7; }
326
327   #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
328   template <class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
329   //Does not work: T_arg7 sun_forte_workaround(T_arg1 _A_1, T_arg2 _A_2, T_arg3 _A_3, T_arg4 _A_4, T_arg5 _A_5, T_arg6 _A_6, T_arg7 _A_7) const { return operator()( _A_1, _A_2, _A_3, _A_4, _A_5, _A_6, _A_7 ); }
330   T_arg7 sun_forte_workaround(T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 _A_7) const { return _A_7; }
331   #endif
332   
333 };
334
335 } /* namespace internal */
336
337 #endif // DOXYGEN_SHOULD_SKIP_THIS
338 } /* namespace sigc */
339
340 #endif // SIGCXX_DISABLE_DEPRECATED
341
342 #endif /* _SIGC_LAMBDA_SELECT_HPP_ */