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 
17 namespace boost::process::posix
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::posix
boost::process::posix::execute
child execute(const I0 &i0)
Definition: execute.hpp:22
executor.hpp
boost::process::posix::executor
Definition: executor.hpp:23
boost::process::posix
Definition: child.hpp:14
child.hpp