2 #ifndef TPIE_PIPELINING_FACTORY_HELPERS_H
3 #define TPIE_PIPELINING_FACTORY_HELPERS_H
5 #include <tpie/pipelining/factory_base.h>
14 template <
template <
typename dest_t>
class R>
17 template<
typename dest_t>
19 typedef R<dest_t> type;
22 template <
typename dest_t>
23 inline R<dest_t> construct(
const dest_t & dest)
const {
34 template <
typename Holder>
37 template<
typename dest_t>
39 typedef typename Holder::template type<dest_t> type;
42 template <
typename dest_t>
43 inline typename Holder::template type<dest_t> construct(
const dest_t & dest)
const {
44 typename Holder::template type<dest_t> r(dest);
54 template <
template <
typename dest_t>
class R,
typename T1>
57 template<
typename dest_t>
59 typedef R<dest_t> type;
64 template <
typename dest_t>
65 inline R<dest_t> construct(
const dest_t & dest)
const {
66 R<dest_t> r(dest, t1);
78 template <
typename Holder,
typename T1>
81 template<
typename dest_t>
83 typedef typename Holder::template type<dest_t> type;
88 template <
typename dest_t>
89 inline typename Holder::template type<dest_t> construct(
const dest_t & dest)
const {
90 typename Holder::template type<dest_t> r(dest, t1);
102 template <
template <
typename dest_t>
class R,
typename T1,
typename T2>
105 template<
typename dest_t>
107 typedef R<dest_t> type;
110 inline factory_2(T1 t1, T2 t2) : t1(t1), t2(t2) {}
112 template <
typename dest_t>
113 inline R<dest_t> construct(
const dest_t & dest)
const {
114 R<dest_t> r(dest, t1, t2);
127 template <
typename Holder,
typename T1,
typename T2>
130 template<
typename dest_t>
132 typedef typename Holder::template type<dest_t> type;
137 template <
typename dest_t>
138 inline typename Holder::template type<dest_t> construct(
const dest_t & dest)
const {
139 typename Holder::template type<dest_t> r(dest, t1, t2);
152 template <
template <
typename dest_t>
class R,
typename T1,
typename T2,
typename T3>
155 template<
typename dest_t>
157 typedef R<dest_t> type;
160 inline factory_3(T1 t1, T2 t2, T3 t3) : t1(t1), t2(t2), t3(t3) {}
162 template <
typename dest_t>
163 inline R<dest_t> construct(
const dest_t & dest)
const {
164 R<dest_t> r(dest, t1, t2, t3);
178 template <
typename Holder,
typename T1,
typename T2,
typename T3>
181 template<
typename dest_t>
183 typedef typename Holder::template type<dest_t> type;
186 inline tempfactory_3(T1 t1, T2 t2, T3 t3) : t1(t1), t2(t2), t3(t3) {}
188 template <
typename dest_t>
189 inline typename Holder::template type<dest_t> construct(
const dest_t & dest)
const {
190 typename Holder::template type<dest_t> r(dest, t1, t2, t3);
204 template <
template <
typename dest_t>
class R,
typename T1,
typename T2,
typename T3,
typename T4>
207 template<
typename dest_t>
209 typedef R<dest_t> type;
212 inline factory_4(T1 t1, T2 t2, T3 t3, T4 t4) : t1(t1), t2(t2), t3(t3), t4(t4) {}
214 template <
typename dest_t>
215 inline R<dest_t> construct(
const dest_t & dest)
const {
216 R<dest_t> r(dest, t1, t2, t3, t4);
231 template <
typename Holder,
typename T1,
typename T2,
typename T3,
typename T4>
234 template<
typename dest_t>
236 typedef typename Holder::template type<dest_t> type;
239 inline tempfactory_4(T1 t1, T2 t2, T3 t3, T4 t4) : t1(t1), t2(t2), t3(t3), t4(t4) {}
241 template <
typename dest_t>
242 inline typename Holder::template type<dest_t> construct(
const dest_t & dest)
const {
243 typename Holder::template type<dest_t> r(dest, t1, t2, t3, t4);
258 template <
template <
typename dest_t>
class R,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
261 template<
typename dest_t>
263 typedef R<dest_t> type;
266 inline factory_5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5) {}
268 template <
typename dest_t>
269 inline R<dest_t> construct(
const dest_t & dest)
const {
270 R<dest_t> r(dest, t1, t2, t3, t4, t5);
286 template <
typename Holder,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
289 template<
typename dest_t>
291 typedef typename Holder::template type<dest_t> type;
294 inline tempfactory_5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5) {}
296 template <
typename dest_t>
297 inline typename Holder::template type<dest_t> construct(
const dest_t & dest)
const {
298 typename Holder::template type<dest_t> r(dest, t1, t2, t3, t4, t5);
314 template <
template <
typename dest_t>
class R,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
317 template<
typename dest_t>
319 typedef R<dest_t> type;
322 inline factory_6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5), t6(t6) {}
324 template <
typename dest_t>
325 inline R<dest_t> construct(
const dest_t & dest)
const {
326 R<dest_t> r(dest, t1, t2, t3, t4, t5, t6);
343 template <
typename Holder,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
346 template<
typename dest_t>
348 typedef typename Holder::template type<dest_t> type;
351 inline tempfactory_6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5), t6(t6) {}
353 template <
typename dest_t>
354 inline typename Holder::template type<dest_t> construct(
const dest_t & dest)
const {
355 typename Holder::template type<dest_t> r(dest, t1, t2, t3, t4, t5, t6);
372 template <
typename R>
375 typedef R constructed_type;
377 inline R construct()
const {
388 template <
typename R,
typename T1>
391 typedef R constructed_type;
395 inline R construct()
const {
408 template <
typename R,
typename T1,
typename T2>
411 typedef R constructed_type;
415 inline R construct()
const {
429 template <
typename R,
typename T1,
typename T2,
typename T3>
432 typedef R constructed_type;
434 inline termfactory_3(T1 t1, T2 t2, T3 t3) : t1(t1), t2(t2), t3(t3) {}
436 inline R construct()
const {
451 template <
typename R,
typename T1,
typename T2,
typename T3,
typename T4>
454 typedef R constructed_type;
456 inline termfactory_4(T1 t1, T2 t2, T3 t3, T4 t4) : t1(t1), t2(t2), t3(t3), t4(t4) {}
458 inline R construct()
const {
474 template <
typename R,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
477 typedef R constructed_type;
479 inline termfactory_5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5) {}
481 inline R construct()
const {
482 R r(t1, t2, t3, t4, t5);
498 template <
typename R,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
501 typedef R constructed_type;
503 inline termfactory_6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5), t6(t6) {}
505 inline R construct()
const {
506 R r(t1, t2, t3, t4, t5, t6);
522 #endif // TPIE_PIPELINING_FACTORY_HELPERS_H
Node factory for 4-argument templated generator.
Node factory for 0-argument terminator.
Node factory for 6-argument terminator.
Node factory for 1-argument templated generator.
Node factory for 4-argument generator.
Node factory for 5-argument templated generator.
Node factory for 1-argument terminator.
Node factory for 2-argument templated generator.
Node factory for 3-argument generator.
Node factory for 3-argument terminator.
Node factory for 2-argument generator.
Node factory for 6-argument templated generator.
Node factory for 2-argument terminator.
Node factory for 6-argument generator.
Node factory for 4-argument terminator.
Node factory for 1-argument generator.
Node factory for 5-argument generator.
Node factory for 3-argument templated generator.
Node factory for 5-argument terminator.
Node factory for 0-argument templated generator.
Node factory for 0-argument generator.