29 #ifndef __ETL_VISITOR__
30 #define __ETL_VISITOR__
54 template <
typename T1,
typename T2 =
void,
typename T3 =
void,
typename T4 =
void>
59 virtual void accept(T1&) = 0;
60 virtual void accept(T2&) = 0;
61 virtual void accept(T3&) = 0;
62 virtual void accept(T4&) = 0;
70 template <
typename T1,
typename T2,
typename T3>
75 virtual void accept(T1&) = 0;
76 virtual void accept(T2&) = 0;
77 virtual void accept(T3&) = 0;
85 template <
typename T1,
typename T2>
90 virtual void accept(T1&) = 0;
91 virtual void accept(T2&) = 0;
99 template <
typename T1>
104 virtual void accept(T1&) = 0;
112 template <
typename T1,
typename T2 = void,
typename T3 = void,
typename T4 = void,
113 typename T5 = void,
typename T6 = void,
typename T7 = void,
typename T8 = void,
114 typename T9 = void,
typename T10 = void,
typename T11 = void,
typename T12 = void,
115 typename T13 = void,
typename T14 = void,
typename T15 = void,
typename T16 =
void>
120 virtual void visit(T1&) = 0;
121 virtual void visit(T2&) = 0;
122 virtual void visit(T3&) = 0;
123 virtual void visit(T4&) = 0;
124 virtual void visit(T5&) = 0;
125 virtual void visit(T6&) = 0;
126 virtual void visit(T7&) = 0;
127 virtual void visit(T8&) = 0;
128 virtual void visit(T9&) = 0;
129 virtual void visit(T10&) = 0;
130 virtual void visit(T11&) = 0;
131 virtual void visit(T12&) = 0;
132 virtual void visit(T13&) = 0;
133 virtual void visit(T14&) = 0;
134 virtual void visit(T15&) = 0;
135 virtual void visit(T16&) = 0;
143 template <
typename T1,
typename T2,
typename T3,
typename T4,
144 typename T5,
typename T6,
typename T7,
typename T8,
145 typename T9,
typename T10,
typename T11,
typename T12,
146 typename T13,
typename T14,
typename T15>
147 class visitor<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>
151 virtual void visit(T1&) = 0;
152 virtual void visit(T2&) = 0;
153 virtual void visit(T3&) = 0;
154 virtual void visit(T4&) = 0;
155 virtual void visit(T5&) = 0;
156 virtual void visit(T6&) = 0;
157 virtual void visit(T7&) = 0;
158 virtual void visit(T8&) = 0;
159 virtual void visit(T9&) = 0;
160 virtual void visit(T10&) = 0;
161 virtual void visit(T11&) = 0;
162 virtual void visit(T12&) = 0;
163 virtual void visit(T13&) = 0;
164 virtual void visit(T14&) = 0;
165 virtual void visit(T15&) = 0;
173 template <
typename T1,
typename T2,
typename T3,
typename T4,
174 typename T5,
typename T6,
typename T7,
typename T8,
175 typename T9,
typename T10,
typename T11,
typename T12,
176 typename T13,
typename T14>
177 class visitor<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>
181 virtual void visit(T1&) = 0;
182 virtual void visit(T2&) = 0;
183 virtual void visit(T3&) = 0;
184 virtual void visit(T4&) = 0;
185 virtual void visit(T5&) = 0;
186 virtual void visit(T6&) = 0;
187 virtual void visit(T7&) = 0;
188 virtual void visit(T8&) = 0;
189 virtual void visit(T9&) = 0;
190 virtual void visit(T10&) = 0;
191 virtual void visit(T11&) = 0;
192 virtual void visit(T12&) = 0;
193 virtual void visit(T13&) = 0;
194 virtual void visit(T14&) = 0;
202 template <
typename T1,
typename T2,
typename T3,
typename T4,
203 typename T5,
typename T6,
typename T7,
typename T8,
204 typename T9,
typename T10,
typename T11,
typename T12,
206 class visitor<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>
210 virtual void visit(T1&) = 0;
211 virtual void visit(T2&) = 0;
212 virtual void visit(T3&) = 0;
213 virtual void visit(T4&) = 0;
214 virtual void visit(T5&) = 0;
215 virtual void visit(T6&) = 0;
216 virtual void visit(T7&) = 0;
217 virtual void visit(T8&) = 0;
218 virtual void visit(T9&) = 0;
219 virtual void visit(T10&) = 0;
220 virtual void visit(T11&) = 0;
221 virtual void visit(T12&) = 0;
222 virtual void visit(T13&) = 0;
230 template <
typename T1,
typename T2,
typename T3,
typename T4,
231 typename T5,
typename T6,
typename T7,
typename T8,
232 typename T9,
typename T10,
typename T11,
typename T12>
233 class visitor<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
237 virtual void visit(T1&) = 0;
238 virtual void visit(T2&) = 0;
239 virtual void visit(T3&) = 0;
240 virtual void visit(T4&) = 0;
241 virtual void visit(T5&) = 0;
242 virtual void visit(T6&) = 0;
243 virtual void visit(T7&) = 0;
244 virtual void visit(T8&) = 0;
245 virtual void visit(T9&) = 0;
246 virtual void visit(T10&) = 0;
247 virtual void visit(T11&) = 0;
248 virtual void visit(T12&) = 0;
256 template <
typename T1,
typename T2,
typename T3,
typename T4,
257 typename T5,
typename T6,
typename T7,
typename T8,
258 typename T9,
typename T10,
typename T11>
259 class visitor<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
263 virtual void visit(T1&) = 0;
264 virtual void visit(T2&) = 0;
265 virtual void visit(T3&) = 0;
266 virtual void visit(T4&) = 0;
267 virtual void visit(T5&) = 0;
268 virtual void visit(T6&) = 0;
269 virtual void visit(T7&) = 0;
270 virtual void visit(T8&) = 0;
271 virtual void visit(T9&) = 0;
272 virtual void visit(T10&) = 0;
273 virtual void visit(T11&) = 0;
281 template <
typename T1,
typename T2,
typename T3,
typename T4,
282 typename T5,
typename T6,
typename T7,
typename T8,
283 typename T9,
typename T10>
284 class visitor<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
288 virtual void visit(T1&) = 0;
289 virtual void visit(T2&) = 0;
290 virtual void visit(T3&) = 0;
291 virtual void visit(T4&) = 0;
292 virtual void visit(T5&) = 0;
293 virtual void visit(T6&) = 0;
294 virtual void visit(T7&) = 0;
295 virtual void visit(T8&) = 0;
296 virtual void visit(T9&) = 0;
297 virtual void visit(T10&) = 0;
305 template <
typename T1,
typename T2,
typename T3,
typename T4,
306 typename T5,
typename T6,
typename T7,
typename T8,
308 class visitor<T1, T2, T3, T4, T5, T6, T7, T8, T9>
312 virtual void visit(T1&) = 0;
313 virtual void visit(T2&) = 0;
314 virtual void visit(T3&) = 0;
315 virtual void visit(T4&) = 0;
316 virtual void visit(T5&) = 0;
317 virtual void visit(T6&) = 0;
318 virtual void visit(T7&) = 0;
319 virtual void visit(T8&) = 0;
320 virtual void visit(T9&) = 0;
328 template <
typename T1,
typename T2,
typename T3,
typename T4,
329 typename T5,
typename T6,
typename T7,
typename T8>
334 virtual void visit(T1&) = 0;
335 virtual void visit(T2&) = 0;
336 virtual void visit(T3&) = 0;
337 virtual void visit(T4&) = 0;
338 virtual void visit(T5&) = 0;
339 virtual void visit(T6&) = 0;
340 virtual void visit(T7&) = 0;
341 virtual void visit(T8&) = 0;
349 template <
typename T1,
typename T2,
typename T3,
typename T4,
350 typename T5,
typename T6,
typename T7>
355 virtual void visit(T1&) = 0;
356 virtual void visit(T2&) = 0;
357 virtual void visit(T3&) = 0;
358 virtual void visit(T4&) = 0;
359 virtual void visit(T5&) = 0;
360 virtual void visit(T6&) = 0;
361 virtual void visit(T7&) = 0;
369 template <
typename T1,
typename T2,
typename T3,
typename T4,
370 typename T5,
typename T6>
375 virtual void visit(T1&) = 0;
376 virtual void visit(T2&) = 0;
377 virtual void visit(T3&) = 0;
378 virtual void visit(T4&) = 0;
379 virtual void visit(T5&) = 0;
380 virtual void visit(T6&) = 0;
388 template <
typename T1,
typename T2,
typename T3,
typename T4,
394 virtual void visit(T1&) = 0;
395 virtual void visit(T2&) = 0;
396 virtual void visit(T3&) = 0;
397 virtual void visit(T4&) = 0;
398 virtual void visit(T5&) = 0;
406 template <
typename T1,
typename T2,
typename T3,
typename T4>
411 virtual void visit(T1&) = 0;
412 virtual void visit(T2&) = 0;
413 virtual void visit(T3&) = 0;
414 virtual void visit(T4&) = 0;
422 template <
typename T1,
typename T2,
typename T3>
427 virtual void visit(T1&) = 0;
428 virtual void visit(T2&) = 0;
429 virtual void visit(T3&) = 0;
437 template <
typename T1,
typename T2>
442 virtual void visit(T1&) = 0;
443 virtual void visit(T2&) = 0;
451 template <
typename T1>
456 virtual void visit(T1&) = 0;
Definition: visitor.h:116
Definition: algorithm.h:43