Chris@16
|
1
|
Chris@16
|
2 // ----------------------------------------------------------------------------
|
Chris@16
|
3 // group.hpp : encapsulates a group of manipulators along with an argument
|
Chris@16
|
4 // ----------------------------------------------------------------------------
|
Chris@16
|
5
|
Chris@16
|
6 // Copyright Samuel Krempp 2003. Use, modification, and distribution are
|
Chris@16
|
7 // subject to the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
9
|
Chris@16
|
10 // See http://www.boost.org/libs/format for library home page
|
Chris@16
|
11
|
Chris@16
|
12 // ----------------------------------------------------------------------------
|
Chris@16
|
13
|
Chris@16
|
14
|
Chris@16
|
15 // group_head : cut the last element of a group out.
|
Chris@16
|
16 // (is overloaded below on each type of group)
|
Chris@16
|
17
|
Chris@16
|
18 // group_last : returns the last element of a group
|
Chris@16
|
19 // (is overloaded below on each type of group)
|
Chris@16
|
20 // ----------------------------------------------------------------------------
|
Chris@16
|
21
|
Chris@16
|
22
|
Chris@16
|
23 #ifndef BOOST_FORMAT_GROUP_HPP
|
Chris@16
|
24 #define BOOST_FORMAT_GROUP_HPP
|
Chris@16
|
25
|
Chris@16
|
26 #include <boost/config.hpp>
|
Chris@16
|
27
|
Chris@16
|
28
|
Chris@16
|
29 namespace boost {
|
Chris@16
|
30 namespace io {
|
Chris@16
|
31
|
Chris@16
|
32
|
Chris@16
|
33 namespace detail {
|
Chris@16
|
34
|
Chris@16
|
35
|
Chris@16
|
36 // empty group, but useful even though.
|
Chris@16
|
37 struct group0
|
Chris@16
|
38 {
|
Chris@16
|
39 group0() {}
|
Chris@16
|
40 };
|
Chris@16
|
41
|
Chris@16
|
42 template <class Ch, class Tr>
|
Chris@16
|
43 inline
|
Chris@16
|
44 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
45 operator << ( BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
46 const group0& )
|
Chris@16
|
47 {
|
Chris@16
|
48 return os;
|
Chris@16
|
49 }
|
Chris@16
|
50
|
Chris@16
|
51 template <class T1>
|
Chris@16
|
52 struct group1
|
Chris@16
|
53 {
|
Chris@16
|
54 T1 a1_;
|
Chris@16
|
55 group1(T1 a1)
|
Chris@16
|
56 : a1_(a1)
|
Chris@16
|
57 {}
|
Chris@16
|
58 private:
|
Chris@16
|
59 group1& operator=(const group1&);
|
Chris@16
|
60 };
|
Chris@16
|
61
|
Chris@16
|
62 template <class Ch, class Tr, class T1>
|
Chris@16
|
63 inline
|
Chris@16
|
64 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
65 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
66 const group1<T1>& x)
|
Chris@16
|
67 {
|
Chris@16
|
68 os << x.a1_;
|
Chris@16
|
69 return os;
|
Chris@16
|
70 }
|
Chris@16
|
71
|
Chris@16
|
72
|
Chris@16
|
73
|
Chris@16
|
74
|
Chris@16
|
75 template <class T1,class T2>
|
Chris@16
|
76 struct group2
|
Chris@16
|
77 {
|
Chris@16
|
78 T1 a1_;
|
Chris@16
|
79 T2 a2_;
|
Chris@16
|
80 group2(T1 a1,T2 a2)
|
Chris@16
|
81 : a1_(a1),a2_(a2)
|
Chris@16
|
82 {}
|
Chris@16
|
83 private:
|
Chris@16
|
84 group2& operator=(const group2&);
|
Chris@16
|
85 };
|
Chris@16
|
86
|
Chris@16
|
87 template <class Ch, class Tr, class T1,class T2>
|
Chris@16
|
88 inline
|
Chris@16
|
89 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
90 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
91 const group2<T1,T2>& x)
|
Chris@16
|
92 {
|
Chris@16
|
93 os << x.a1_<< x.a2_;
|
Chris@16
|
94 return os;
|
Chris@16
|
95 }
|
Chris@16
|
96
|
Chris@16
|
97 template <class T1,class T2,class T3>
|
Chris@16
|
98 struct group3
|
Chris@16
|
99 {
|
Chris@16
|
100 T1 a1_;
|
Chris@16
|
101 T2 a2_;
|
Chris@16
|
102 T3 a3_;
|
Chris@16
|
103 group3(T1 a1,T2 a2,T3 a3)
|
Chris@16
|
104 : a1_(a1),a2_(a2),a3_(a3)
|
Chris@16
|
105 {}
|
Chris@16
|
106 private:
|
Chris@16
|
107 group3& operator=(const group3&);
|
Chris@16
|
108 };
|
Chris@16
|
109
|
Chris@16
|
110 template <class Ch, class Tr, class T1,class T2,class T3>
|
Chris@16
|
111 inline
|
Chris@16
|
112 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
113 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
114 const group3<T1,T2,T3>& x)
|
Chris@16
|
115 {
|
Chris@16
|
116 os << x.a1_<< x.a2_<< x.a3_;
|
Chris@16
|
117 return os;
|
Chris@16
|
118 }
|
Chris@16
|
119
|
Chris@16
|
120 template <class T1,class T2,class T3,class T4>
|
Chris@16
|
121 struct group4
|
Chris@16
|
122 {
|
Chris@16
|
123 T1 a1_;
|
Chris@16
|
124 T2 a2_;
|
Chris@16
|
125 T3 a3_;
|
Chris@16
|
126 T4 a4_;
|
Chris@16
|
127 group4(T1 a1,T2 a2,T3 a3,T4 a4)
|
Chris@16
|
128 : a1_(a1),a2_(a2),a3_(a3),a4_(a4)
|
Chris@16
|
129 {}
|
Chris@16
|
130 private:
|
Chris@16
|
131 group4& operator=(const group4&);
|
Chris@16
|
132 };
|
Chris@16
|
133
|
Chris@16
|
134 template <class Ch, class Tr, class T1,class T2,class T3,class T4>
|
Chris@16
|
135 inline
|
Chris@16
|
136 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
137 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
138 const group4<T1,T2,T3,T4>& x)
|
Chris@16
|
139 {
|
Chris@16
|
140 os << x.a1_<< x.a2_<< x.a3_<< x.a4_;
|
Chris@16
|
141 return os;
|
Chris@16
|
142 }
|
Chris@16
|
143
|
Chris@16
|
144 template <class T1,class T2,class T3,class T4,class T5>
|
Chris@16
|
145 struct group5
|
Chris@16
|
146 {
|
Chris@16
|
147 T1 a1_;
|
Chris@16
|
148 T2 a2_;
|
Chris@16
|
149 T3 a3_;
|
Chris@16
|
150 T4 a4_;
|
Chris@16
|
151 T5 a5_;
|
Chris@16
|
152 group5(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5)
|
Chris@16
|
153 : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5)
|
Chris@16
|
154 {}
|
Chris@16
|
155 };
|
Chris@16
|
156
|
Chris@16
|
157 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5>
|
Chris@16
|
158 inline
|
Chris@16
|
159 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
160 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
161 const group5<T1,T2,T3,T4,T5>& x)
|
Chris@16
|
162 {
|
Chris@16
|
163 os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_;
|
Chris@16
|
164 return os;
|
Chris@16
|
165 }
|
Chris@16
|
166
|
Chris@16
|
167 template <class T1,class T2,class T3,class T4,class T5,class T6>
|
Chris@16
|
168 struct group6
|
Chris@16
|
169 {
|
Chris@16
|
170 T1 a1_;
|
Chris@16
|
171 T2 a2_;
|
Chris@16
|
172 T3 a3_;
|
Chris@16
|
173 T4 a4_;
|
Chris@16
|
174 T5 a5_;
|
Chris@16
|
175 T6 a6_;
|
Chris@16
|
176 group6(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6)
|
Chris@16
|
177 : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6)
|
Chris@16
|
178 {}
|
Chris@16
|
179 };
|
Chris@16
|
180
|
Chris@16
|
181 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6>
|
Chris@16
|
182 inline
|
Chris@16
|
183 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
184 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
185 const group6<T1,T2,T3,T4,T5,T6>& x)
|
Chris@16
|
186 {
|
Chris@16
|
187 os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_;
|
Chris@16
|
188 return os;
|
Chris@16
|
189 }
|
Chris@16
|
190
|
Chris@16
|
191 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
|
Chris@16
|
192 struct group7
|
Chris@16
|
193 {
|
Chris@16
|
194 T1 a1_;
|
Chris@16
|
195 T2 a2_;
|
Chris@16
|
196 T3 a3_;
|
Chris@16
|
197 T4 a4_;
|
Chris@16
|
198 T5 a5_;
|
Chris@16
|
199 T6 a6_;
|
Chris@16
|
200 T7 a7_;
|
Chris@16
|
201 group7(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7)
|
Chris@16
|
202 : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7)
|
Chris@16
|
203 {}
|
Chris@16
|
204 };
|
Chris@16
|
205
|
Chris@16
|
206 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7>
|
Chris@16
|
207 inline
|
Chris@16
|
208 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
209 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
210 const group7<T1,T2,T3,T4,T5,T6,T7>& x)
|
Chris@16
|
211 {
|
Chris@16
|
212 os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_;
|
Chris@16
|
213 return os;
|
Chris@16
|
214 }
|
Chris@16
|
215
|
Chris@16
|
216 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
|
Chris@16
|
217 struct group8
|
Chris@16
|
218 {
|
Chris@16
|
219 T1 a1_;
|
Chris@16
|
220 T2 a2_;
|
Chris@16
|
221 T3 a3_;
|
Chris@16
|
222 T4 a4_;
|
Chris@16
|
223 T5 a5_;
|
Chris@16
|
224 T6 a6_;
|
Chris@16
|
225 T7 a7_;
|
Chris@16
|
226 T8 a8_;
|
Chris@16
|
227 group8(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8)
|
Chris@16
|
228 : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8)
|
Chris@16
|
229 {}
|
Chris@16
|
230 };
|
Chris@16
|
231
|
Chris@16
|
232 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
|
Chris@16
|
233 inline
|
Chris@16
|
234 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
235 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
236 const group8<T1,T2,T3,T4,T5,T6,T7,T8>& x)
|
Chris@16
|
237 {
|
Chris@16
|
238 os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_;
|
Chris@16
|
239 return os;
|
Chris@16
|
240 }
|
Chris@16
|
241
|
Chris@16
|
242 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
|
Chris@16
|
243 struct group9
|
Chris@16
|
244 {
|
Chris@16
|
245 T1 a1_;
|
Chris@16
|
246 T2 a2_;
|
Chris@16
|
247 T3 a3_;
|
Chris@16
|
248 T4 a4_;
|
Chris@16
|
249 T5 a5_;
|
Chris@16
|
250 T6 a6_;
|
Chris@16
|
251 T7 a7_;
|
Chris@16
|
252 T8 a8_;
|
Chris@16
|
253 T9 a9_;
|
Chris@16
|
254 group9(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9)
|
Chris@16
|
255 : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9)
|
Chris@16
|
256 {}
|
Chris@16
|
257 };
|
Chris@16
|
258
|
Chris@16
|
259 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
|
Chris@16
|
260 inline
|
Chris@16
|
261 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
262 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
263 const group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>& x)
|
Chris@16
|
264 {
|
Chris@16
|
265 os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_;
|
Chris@16
|
266 return os;
|
Chris@16
|
267 }
|
Chris@16
|
268
|
Chris@16
|
269 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
|
Chris@16
|
270 struct group10
|
Chris@16
|
271 {
|
Chris@16
|
272 T1 a1_;
|
Chris@16
|
273 T2 a2_;
|
Chris@16
|
274 T3 a3_;
|
Chris@16
|
275 T4 a4_;
|
Chris@16
|
276 T5 a5_;
|
Chris@16
|
277 T6 a6_;
|
Chris@16
|
278 T7 a7_;
|
Chris@16
|
279 T8 a8_;
|
Chris@16
|
280 T9 a9_;
|
Chris@16
|
281 T10 a10_;
|
Chris@16
|
282 group10(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9,T10 a10)
|
Chris@16
|
283 : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9),a10_(a10)
|
Chris@16
|
284 {}
|
Chris@16
|
285 };
|
Chris@16
|
286
|
Chris@16
|
287 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
|
Chris@16
|
288 inline
|
Chris@16
|
289 BOOST_IO_STD basic_ostream<Ch, Tr>&
|
Chris@16
|
290 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
|
Chris@16
|
291 const group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>& x)
|
Chris@16
|
292 {
|
Chris@16
|
293 os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_<< x.a10_;
|
Chris@16
|
294 return os;
|
Chris@16
|
295 }
|
Chris@16
|
296
|
Chris@16
|
297
|
Chris@16
|
298
|
Chris@16
|
299
|
Chris@16
|
300 template <class T1,class T2>
|
Chris@16
|
301 inline
|
Chris@16
|
302 group1<T1>
|
Chris@16
|
303 group_head( group2<T1,T2> const& x)
|
Chris@16
|
304 {
|
Chris@16
|
305 return group1<T1> (x.a1_);
|
Chris@16
|
306 }
|
Chris@16
|
307
|
Chris@16
|
308 template <class T1,class T2>
|
Chris@16
|
309 inline
|
Chris@16
|
310 group1<T2>
|
Chris@16
|
311 group_last( group2<T1,T2> const& x)
|
Chris@16
|
312 {
|
Chris@16
|
313 return group1<T2> (x.a2_);
|
Chris@16
|
314 }
|
Chris@16
|
315
|
Chris@16
|
316
|
Chris@16
|
317
|
Chris@16
|
318 template <class T1,class T2,class T3>
|
Chris@16
|
319 inline
|
Chris@16
|
320 group2<T1,T2>
|
Chris@16
|
321 group_head( group3<T1,T2,T3> const& x)
|
Chris@16
|
322 {
|
Chris@16
|
323 return group2<T1,T2> (x.a1_,x.a2_);
|
Chris@16
|
324 }
|
Chris@16
|
325
|
Chris@16
|
326 template <class T1,class T2,class T3>
|
Chris@16
|
327 inline
|
Chris@16
|
328 group1<T3>
|
Chris@16
|
329 group_last( group3<T1,T2,T3> const& x)
|
Chris@16
|
330 {
|
Chris@16
|
331 return group1<T3> (x.a3_);
|
Chris@16
|
332 }
|
Chris@16
|
333
|
Chris@16
|
334
|
Chris@16
|
335
|
Chris@16
|
336 template <class T1,class T2,class T3,class T4>
|
Chris@16
|
337 inline
|
Chris@16
|
338 group3<T1,T2,T3>
|
Chris@16
|
339 group_head( group4<T1,T2,T3,T4> const& x)
|
Chris@16
|
340 {
|
Chris@16
|
341 return group3<T1,T2,T3> (x.a1_,x.a2_,x.a3_);
|
Chris@16
|
342 }
|
Chris@16
|
343
|
Chris@16
|
344 template <class T1,class T2,class T3,class T4>
|
Chris@16
|
345 inline
|
Chris@16
|
346 group1<T4>
|
Chris@16
|
347 group_last( group4<T1,T2,T3,T4> const& x)
|
Chris@16
|
348 {
|
Chris@16
|
349 return group1<T4> (x.a4_);
|
Chris@16
|
350 }
|
Chris@16
|
351
|
Chris@16
|
352
|
Chris@16
|
353
|
Chris@16
|
354 template <class T1,class T2,class T3,class T4,class T5>
|
Chris@16
|
355 inline
|
Chris@16
|
356 group4<T1,T2,T3,T4>
|
Chris@16
|
357 group_head( group5<T1,T2,T3,T4,T5> const& x)
|
Chris@16
|
358 {
|
Chris@16
|
359 return group4<T1,T2,T3,T4> (x.a1_,x.a2_,x.a3_,x.a4_);
|
Chris@16
|
360 }
|
Chris@16
|
361
|
Chris@16
|
362 template <class T1,class T2,class T3,class T4,class T5>
|
Chris@16
|
363 inline
|
Chris@16
|
364 group1<T5>
|
Chris@16
|
365 group_last( group5<T1,T2,T3,T4,T5> const& x)
|
Chris@16
|
366 {
|
Chris@16
|
367 return group1<T5> (x.a5_);
|
Chris@16
|
368 }
|
Chris@16
|
369
|
Chris@16
|
370
|
Chris@16
|
371
|
Chris@16
|
372 template <class T1,class T2,class T3,class T4,class T5,class T6>
|
Chris@16
|
373 inline
|
Chris@16
|
374 group5<T1,T2,T3,T4,T5>
|
Chris@16
|
375 group_head( group6<T1,T2,T3,T4,T5,T6> const& x)
|
Chris@16
|
376 {
|
Chris@16
|
377 return group5<T1,T2,T3,T4,T5> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_);
|
Chris@16
|
378 }
|
Chris@16
|
379
|
Chris@16
|
380 template <class T1,class T2,class T3,class T4,class T5,class T6>
|
Chris@16
|
381 inline
|
Chris@16
|
382 group1<T6>
|
Chris@16
|
383 group_last( group6<T1,T2,T3,T4,T5,T6> const& x)
|
Chris@16
|
384 {
|
Chris@16
|
385 return group1<T6> (x.a6_);
|
Chris@16
|
386 }
|
Chris@16
|
387
|
Chris@16
|
388
|
Chris@16
|
389
|
Chris@16
|
390 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
|
Chris@16
|
391 inline
|
Chris@16
|
392 group6<T1,T2,T3,T4,T5,T6>
|
Chris@16
|
393 group_head( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
|
Chris@16
|
394 {
|
Chris@16
|
395 return group6<T1,T2,T3,T4,T5,T6> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_);
|
Chris@16
|
396 }
|
Chris@16
|
397
|
Chris@16
|
398 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
|
Chris@16
|
399 inline
|
Chris@16
|
400 group1<T7>
|
Chris@16
|
401 group_last( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
|
Chris@16
|
402 {
|
Chris@16
|
403 return group1<T7> (x.a7_);
|
Chris@16
|
404 }
|
Chris@16
|
405
|
Chris@16
|
406
|
Chris@16
|
407
|
Chris@16
|
408 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
|
Chris@16
|
409 inline
|
Chris@16
|
410 group7<T1,T2,T3,T4,T5,T6,T7>
|
Chris@16
|
411 group_head( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
|
Chris@16
|
412 {
|
Chris@16
|
413 return group7<T1,T2,T3,T4,T5,T6,T7> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_);
|
Chris@16
|
414 }
|
Chris@16
|
415
|
Chris@16
|
416 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
|
Chris@16
|
417 inline
|
Chris@16
|
418 group1<T8>
|
Chris@16
|
419 group_last( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
|
Chris@16
|
420 {
|
Chris@16
|
421 return group1<T8> (x.a8_);
|
Chris@16
|
422 }
|
Chris@16
|
423
|
Chris@16
|
424
|
Chris@16
|
425
|
Chris@16
|
426 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
|
Chris@16
|
427 inline
|
Chris@16
|
428 group8<T1,T2,T3,T4,T5,T6,T7,T8>
|
Chris@16
|
429 group_head( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
|
Chris@16
|
430 {
|
Chris@16
|
431 return group8<T1,T2,T3,T4,T5,T6,T7,T8> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_,x.a8_);
|
Chris@16
|
432 }
|
Chris@16
|
433
|
Chris@16
|
434 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
|
Chris@16
|
435 inline
|
Chris@16
|
436 group1<T9>
|
Chris@16
|
437 group_last( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
|
Chris@16
|
438 {
|
Chris@16
|
439 return group1<T9> (x.a9_);
|
Chris@16
|
440 }
|
Chris@16
|
441
|
Chris@16
|
442
|
Chris@16
|
443
|
Chris@16
|
444 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
|
Chris@16
|
445 inline
|
Chris@16
|
446 group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>
|
Chris@16
|
447 group_head( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
|
Chris@16
|
448 {
|
Chris@16
|
449 return group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_,x.a8_,x.a9_);
|
Chris@16
|
450 }
|
Chris@16
|
451
|
Chris@16
|
452 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
|
Chris@16
|
453 inline
|
Chris@16
|
454 group1<T10>
|
Chris@16
|
455 group_last( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
|
Chris@16
|
456 {
|
Chris@16
|
457 return group1<T10> (x.a10_);
|
Chris@16
|
458 }
|
Chris@16
|
459
|
Chris@16
|
460
|
Chris@16
|
461
|
Chris@16
|
462
|
Chris@16
|
463
|
Chris@16
|
464 } // namespace detail
|
Chris@16
|
465
|
Chris@16
|
466
|
Chris@16
|
467
|
Chris@16
|
468 // helper functions
|
Chris@16
|
469
|
Chris@16
|
470
|
Chris@16
|
471 inline detail::group1< detail::group0 >
|
Chris@16
|
472 group() { return detail::group1< detail::group0 > ( detail::group0() ); }
|
Chris@16
|
473
|
Chris@16
|
474 template <class T1, class Var>
|
Chris@16
|
475 inline
|
Chris@16
|
476 detail::group1< detail::group2<T1, Var const&> >
|
Chris@16
|
477 group(T1 a1, Var const& var)
|
Chris@16
|
478 {
|
Chris@16
|
479 return detail::group1< detail::group2<T1, Var const&> >
|
Chris@16
|
480 ( detail::group2<T1, Var const&>
|
Chris@16
|
481 (a1, var)
|
Chris@16
|
482 );
|
Chris@16
|
483 }
|
Chris@16
|
484
|
Chris@16
|
485 template <class T1,class T2, class Var>
|
Chris@16
|
486 inline
|
Chris@16
|
487 detail::group1< detail::group3<T1,T2, Var const&> >
|
Chris@16
|
488 group(T1 a1,T2 a2, Var const& var)
|
Chris@16
|
489 {
|
Chris@16
|
490 return detail::group1< detail::group3<T1,T2, Var const&> >
|
Chris@16
|
491 ( detail::group3<T1,T2, Var const&>
|
Chris@16
|
492 (a1,a2, var)
|
Chris@16
|
493 );
|
Chris@16
|
494 }
|
Chris@16
|
495
|
Chris@16
|
496 template <class T1,class T2,class T3, class Var>
|
Chris@16
|
497 inline
|
Chris@16
|
498 detail::group1< detail::group4<T1,T2,T3, Var const&> >
|
Chris@16
|
499 group(T1 a1,T2 a2,T3 a3, Var const& var)
|
Chris@16
|
500 {
|
Chris@16
|
501 return detail::group1< detail::group4<T1,T2,T3, Var const&> >
|
Chris@16
|
502 ( detail::group4<T1,T2,T3, Var const&>
|
Chris@16
|
503 (a1,a2,a3, var)
|
Chris@16
|
504 );
|
Chris@16
|
505 }
|
Chris@16
|
506
|
Chris@16
|
507 template <class T1,class T2,class T3,class T4, class Var>
|
Chris@16
|
508 inline
|
Chris@16
|
509 detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
|
Chris@16
|
510 group(T1 a1,T2 a2,T3 a3,T4 a4, Var const& var)
|
Chris@16
|
511 {
|
Chris@16
|
512 return detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
|
Chris@16
|
513 ( detail::group5<T1,T2,T3,T4, Var const&>
|
Chris@16
|
514 (a1,a2,a3,a4, var)
|
Chris@16
|
515 );
|
Chris@16
|
516 }
|
Chris@16
|
517
|
Chris@16
|
518 template <class T1,class T2,class T3,class T4,class T5, class Var>
|
Chris@16
|
519 inline
|
Chris@16
|
520 detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
|
Chris@16
|
521 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var const& var)
|
Chris@16
|
522 {
|
Chris@16
|
523 return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
|
Chris@16
|
524 ( detail::group6<T1,T2,T3,T4,T5, Var const&>
|
Chris@16
|
525 (a1,a2,a3,a4,a5, var)
|
Chris@16
|
526 );
|
Chris@16
|
527 }
|
Chris@16
|
528
|
Chris@16
|
529 template <class T1,class T2,class T3,class T4,class T5,class T6, class Var>
|
Chris@16
|
530 inline
|
Chris@16
|
531 detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
|
Chris@16
|
532 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var const& var)
|
Chris@16
|
533 {
|
Chris@16
|
534 return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
|
Chris@16
|
535 ( detail::group7<T1,T2,T3,T4,T5,T6, Var const&>
|
Chris@16
|
536 (a1,a2,a3,a4,a5,a6, var)
|
Chris@16
|
537 );
|
Chris@16
|
538 }
|
Chris@16
|
539
|
Chris@16
|
540 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var>
|
Chris@16
|
541 inline
|
Chris@16
|
542 detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
|
Chris@16
|
543 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var const& var)
|
Chris@16
|
544 {
|
Chris@16
|
545 return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
|
Chris@16
|
546 ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&>
|
Chris@16
|
547 (a1,a2,a3,a4,a5,a6,a7, var)
|
Chris@16
|
548 );
|
Chris@16
|
549 }
|
Chris@16
|
550
|
Chris@16
|
551 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var>
|
Chris@16
|
552 inline
|
Chris@16
|
553 detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
|
Chris@16
|
554 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var const& var)
|
Chris@16
|
555 {
|
Chris@16
|
556 return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
|
Chris@16
|
557 ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&>
|
Chris@16
|
558 (a1,a2,a3,a4,a5,a6,a7,a8, var)
|
Chris@16
|
559 );
|
Chris@16
|
560 }
|
Chris@16
|
561
|
Chris@16
|
562 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var>
|
Chris@16
|
563 inline
|
Chris@16
|
564 detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
|
Chris@16
|
565 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var const& var)
|
Chris@16
|
566 {
|
Chris@16
|
567 return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
|
Chris@16
|
568 ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&>
|
Chris@16
|
569 (a1,a2,a3,a4,a5,a6,a7,a8,a9, var)
|
Chris@16
|
570 );
|
Chris@16
|
571 }
|
Chris@16
|
572
|
Chris@16
|
573
|
Chris@16
|
574 #ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
|
Chris@16
|
575
|
Chris@16
|
576 template <class T1, class Var>
|
Chris@16
|
577 inline
|
Chris@16
|
578 detail::group1< detail::group2<T1, Var&> >
|
Chris@16
|
579 group(T1 a1, Var& var)
|
Chris@16
|
580 {
|
Chris@16
|
581 return detail::group1< detail::group2<T1, Var&> >
|
Chris@16
|
582 ( detail::group2<T1, Var&>
|
Chris@16
|
583 (a1, var)
|
Chris@16
|
584 );
|
Chris@16
|
585 }
|
Chris@16
|
586
|
Chris@16
|
587 template <class T1,class T2, class Var>
|
Chris@16
|
588 inline
|
Chris@16
|
589 detail::group1< detail::group3<T1,T2, Var&> >
|
Chris@16
|
590 group(T1 a1,T2 a2, Var& var)
|
Chris@16
|
591 {
|
Chris@16
|
592 return detail::group1< detail::group3<T1,T2, Var&> >
|
Chris@16
|
593 ( detail::group3<T1,T2, Var&>
|
Chris@16
|
594 (a1,a2, var)
|
Chris@16
|
595 );
|
Chris@16
|
596 }
|
Chris@16
|
597
|
Chris@16
|
598 template <class T1,class T2,class T3, class Var>
|
Chris@16
|
599 inline
|
Chris@16
|
600 detail::group1< detail::group4<T1,T2,T3, Var&> >
|
Chris@16
|
601 group(T1 a1,T2 a2,T3 a3, Var& var)
|
Chris@16
|
602 {
|
Chris@16
|
603 return detail::group1< detail::group4<T1,T2,T3, Var&> >
|
Chris@16
|
604 ( detail::group4<T1,T2,T3, Var&>
|
Chris@16
|
605 (a1,a2,a3, var)
|
Chris@16
|
606 );
|
Chris@16
|
607 }
|
Chris@16
|
608
|
Chris@16
|
609 template <class T1,class T2,class T3,class T4, class Var>
|
Chris@16
|
610 inline
|
Chris@16
|
611 detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
|
Chris@16
|
612 group(T1 a1,T2 a2,T3 a3,T4 a4, Var& var)
|
Chris@16
|
613 {
|
Chris@16
|
614 return detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
|
Chris@16
|
615 ( detail::group5<T1,T2,T3,T4, Var&>
|
Chris@16
|
616 (a1,a2,a3,a4, var)
|
Chris@16
|
617 );
|
Chris@16
|
618 }
|
Chris@16
|
619
|
Chris@16
|
620 template <class T1,class T2,class T3,class T4,class T5, class Var>
|
Chris@16
|
621 inline
|
Chris@16
|
622 detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
|
Chris@16
|
623 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var& var)
|
Chris@16
|
624 {
|
Chris@16
|
625 return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
|
Chris@16
|
626 ( detail::group6<T1,T2,T3,T4,T5, Var&>
|
Chris@16
|
627 (a1,a2,a3,a4,a5, var)
|
Chris@16
|
628 );
|
Chris@16
|
629 }
|
Chris@16
|
630
|
Chris@16
|
631 template <class T1,class T2,class T3,class T4,class T5,class T6, class Var>
|
Chris@16
|
632 inline
|
Chris@16
|
633 detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
|
Chris@16
|
634 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var& var)
|
Chris@16
|
635 {
|
Chris@16
|
636 return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
|
Chris@16
|
637 ( detail::group7<T1,T2,T3,T4,T5,T6, Var&>
|
Chris@16
|
638 (a1,a2,a3,a4,a5,a6, var)
|
Chris@16
|
639 );
|
Chris@16
|
640 }
|
Chris@16
|
641
|
Chris@16
|
642 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var>
|
Chris@16
|
643 inline
|
Chris@16
|
644 detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
|
Chris@16
|
645 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var& var)
|
Chris@16
|
646 {
|
Chris@16
|
647 return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
|
Chris@16
|
648 ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&>
|
Chris@16
|
649 (a1,a2,a3,a4,a5,a6,a7, var)
|
Chris@16
|
650 );
|
Chris@16
|
651 }
|
Chris@16
|
652
|
Chris@16
|
653 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var>
|
Chris@16
|
654 inline
|
Chris@16
|
655 detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
|
Chris@16
|
656 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var& var)
|
Chris@16
|
657 {
|
Chris@16
|
658 return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
|
Chris@16
|
659 ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&>
|
Chris@16
|
660 (a1,a2,a3,a4,a5,a6,a7,a8, var)
|
Chris@16
|
661 );
|
Chris@16
|
662 }
|
Chris@16
|
663
|
Chris@16
|
664 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var>
|
Chris@16
|
665 inline
|
Chris@16
|
666 detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
|
Chris@16
|
667 group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var& var)
|
Chris@16
|
668 {
|
Chris@16
|
669 return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
|
Chris@16
|
670 ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&>
|
Chris@16
|
671 (a1,a2,a3,a4,a5,a6,a7,a8,a9, var)
|
Chris@16
|
672 );
|
Chris@16
|
673 }
|
Chris@16
|
674
|
Chris@16
|
675
|
Chris@16
|
676 #endif // - BOOST_NO_OVERLOAD_FOR_NON_CONST
|
Chris@16
|
677
|
Chris@16
|
678
|
Chris@16
|
679 } // namespace io
|
Chris@16
|
680
|
Chris@16
|
681 } // namespace boost
|
Chris@16
|
682
|
Chris@16
|
683
|
Chris@16
|
684 #endif // BOOST_FORMAT_GROUP_HPP
|