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