execute.hpp
Go to the documentation of this file.
1// Copyright (c) 2006, 2007 Julio M. Merino Vidal
2// Copyright (c) 2008 Ilya Sokolov, Boris Schaeling
3// Copyright (c) 2009 Boris Schaeling
4// Copyright (c) 2010 Felipe Tanus, Boris Schaeling
5// Copyright (c) 2011, 2012 Jeff Flinn, Boris Schaeling
6//
7// Distributed under the Boost Software License, Version 1.0. (See accompanying
8// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
10#pragma once
11
12#include <boost/fusion/tuple/make_tuple.hpp>
15#include <boost/ref.hpp>
16
18{
19
20 template <class I0>
21 child
22 execute(const I0& i0)
23 {
24 return executor()(boost::fusion::make_tuple(boost::cref(i0)));
25 }
26
27 template <class I0, class I1>
28 child
29 execute(const I0& i0, const I1& i1)
30 {
31 return executor()(boost::fusion::make_tuple(boost::cref(i0), boost::cref(i1)));
32 }
33
34 template <class I0, class I1, class I2>
35 child
36 execute(const I0& i0, const I1& i1, const I2& i2)
37 {
38 return executor()(
39 boost::fusion::make_tuple(boost::cref(i0), boost::cref(i1), boost::cref(i2)));
40 }
41
42 template <class I0, class I1, class I2, class I3>
43 child
44 execute(const I0& i0, const I1& i1, const I2& i2, const I3& i3)
45 {
46 return executor()(boost::fusion::make_tuple(
47 boost::cref(i0), boost::cref(i1), boost::cref(i2), boost::cref(i3)));
48 }
49
50 template <class I0, class I1, class I2, class I3, class I4>
51 child
52 execute(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4)
53 {
54 return executor()(boost::fusion::make_tuple(
55 boost::cref(i0), boost::cref(i1), boost::cref(i2), boost::cref(i3), boost::cref(i4)));
56 }
57
58 template <class I0, class I1, class I2, class I3, class I4, class I5>
59 child
60 execute(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, const I5& i5)
61 {
62 return executor()(boost::fusion::make_tuple(boost::cref(i0),
63 boost::cref(i1),
64 boost::cref(i2),
65 boost::cref(i3),
66 boost::cref(i4),
67 boost::cref(i5)));
68 }
69
70 template <class I0, class I1, class I2, class I3, class I4, class I5, class I6>
71 child
72 execute(const I0& i0,
73 const I1& i1,
74 const I2& i2,
75 const I3& i3,
76 const I4& i4,
77 const I5& i5,
78 const I6& i6)
79 {
80 return executor()(boost::fusion::make_tuple(boost::cref(i0),
81 boost::cref(i1),
82 boost::cref(i2),
83 boost::cref(i3),
84 boost::cref(i4),
85 boost::cref(i5),
86 boost::cref(i6)));
87 }
88
89 template <class I0, class I1, class I2, class I3, class I4, class I5, class I6, class I7>
90 child
91 execute(const I0& i0,
92 const I1& i1,
93 const I2& i2,
94 const I3& i3,
95 const I4& i4,
96 const I5& i5,
97 const I6& i6,
98 const I7& i7)
99 {
100 return executor()(boost::fusion::make_tuple(boost::cref(i0),
101 boost::cref(i1),
102 boost::cref(i2),
103 boost::cref(i3),
104 boost::cref(i4),
105 boost::cref(i5),
106 boost::cref(i6),
107 boost::cref(i7)));
108 }
109
110 template <class I0,
111 class I1,
112 class I2,
113 class I3,
114 class I4,
115 class I5,
116 class I6,
117 class I7,
118 class I8>
119 child
120 execute(const I0& i0,
121 const I1& i1,
122 const I2& i2,
123 const I3& i3,
124 const I4& i4,
125 const I5& i5,
126 const I6& i6,
127 const I7& i7,
128 const I8& i8)
129 {
130 return executor()(boost::fusion::make_tuple(boost::cref(i0),
131 boost::cref(i1),
132 boost::cref(i2),
133 boost::cref(i3),
134 boost::cref(i4),
135 boost::cref(i5),
136 boost::cref(i6),
137 boost::cref(i7),
138 boost::cref(i8)));
139 }
140
141 template <class I0,
142 class I1,
143 class I2,
144 class I3,
145 class I4,
146 class I5,
147 class I6,
148 class I7,
149 class I8,
150 class I9>
151 child
152 execute(const I0& i0,
153 const I1& i1,
154 const I2& i2,
155 const I3& i3,
156 const I4& i4,
157 const I5& i5,
158 const I6& i6,
159 const I7& i7,
160 const I8& i8,
161 const I9& i9)
162 {
163 return executor()(boost::fusion::make_tuple(boost::cref(i0),
164 boost::cref(i1),
165 boost::cref(i2),
166 boost::cref(i3),
167 boost::cref(i4),
168 boost::cref(i5),
169 boost::cref(i6),
170 boost::cref(i7),
171 boost::cref(i8),
172 boost::cref(i9)));
173 }
174
175} // namespace boost::process::windows
child execute(const I0 &i0)
Definition execute.hpp:22