Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:45:33

0001 
0002 // ----------------------------------------------------------------------------
0003 // group.hpp :  encapsulates a group of manipulators along with an argument
0004 // ----------------------------------------------------------------------------
0005 
0006 //  Copyright Samuel Krempp 2003. Use, modification, and distribution are
0007 //  subject to the Boost Software License, Version 1.0. (See accompanying
0008 //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0009 
0010 //  See http://www.boost.org/libs/format for library home page
0011 
0012 // ----------------------------------------------------------------------------
0013 
0014                       
0015 // group_head : cut the last element of a group out.
0016 // (is overloaded below on each type of group)
0017 
0018 // group_last : returns the last element of a group
0019 // (is overloaded below on each type of group)
0020 // ----------------------------------------------------------------------------
0021 
0022 
0023 #ifndef BOOST_FORMAT_GROUP_HPP
0024 #define BOOST_FORMAT_GROUP_HPP
0025 
0026 #include <boost/config.hpp>
0027 
0028 
0029 namespace boost {
0030 namespace io {
0031 
0032 
0033 namespace detail {
0034 
0035 
0036 // empty group, but useful even though.
0037 struct group0 
0038 {
0039     group0()      {}
0040 };
0041 
0042 template <class Ch, class Tr>
0043 inline
0044 BOOST_IO_STD basic_ostream<Ch, Tr>&
0045 operator << ( BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0046              const group0& )
0047 { 
0048    return os; 
0049 }
0050 
0051 template <class T1>
0052 struct group1
0053 {
0054     T1 a1_;
0055     group1(T1 a1)
0056       : a1_(a1)
0057       {}
0058     group1(const group1&) = default;
0059     group1& operator=(const group1&) = delete;
0060 };
0061 
0062 template <class Ch, class Tr, class T1>
0063 inline
0064 BOOST_IO_STD basic_ostream<Ch, Tr>&
0065 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0066              const group1<T1>& x)
0067 { 
0068    os << x.a1_;  
0069    return os; 
0070 }
0071 
0072 
0073 
0074 
0075 template <class T1,class T2>
0076 struct group2
0077 {
0078     T1 a1_;
0079     T2 a2_;
0080     group2(T1 a1,T2 a2)
0081       : a1_(a1),a2_(a2)
0082       {}
0083     group2(const group2&) = default;
0084     group2& operator=(const group2&) = delete;
0085 };
0086 
0087 template <class Ch, class Tr, class T1,class T2>
0088 inline
0089 BOOST_IO_STD basic_ostream<Ch, Tr>&
0090 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0091              const group2<T1,T2>& x)
0092 { 
0093    os << x.a1_<< x.a2_;  
0094    return os; 
0095 }
0096 
0097 template <class T1,class T2,class T3>
0098 struct group3
0099 {
0100     T1 a1_;
0101     T2 a2_;
0102     T3 a3_;
0103     group3(T1 a1,T2 a2,T3 a3)
0104       : a1_(a1),a2_(a2),a3_(a3)
0105       {}
0106     group3(const group3&) = default;
0107     group3& operator=(const group3&) = delete;
0108 };
0109 
0110 template <class Ch, class Tr, class T1,class T2,class T3>
0111 inline
0112 BOOST_IO_STD basic_ostream<Ch, Tr>&
0113 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0114              const group3<T1,T2,T3>& x)
0115 { 
0116    os << x.a1_<< x.a2_<< x.a3_;  
0117    return os; 
0118 }
0119 
0120 template <class T1,class T2,class T3,class T4>
0121 struct group4
0122 {
0123     T1 a1_;
0124     T2 a2_;
0125     T3 a3_;
0126     T4 a4_;
0127     group4(T1 a1,T2 a2,T3 a3,T4 a4)
0128       : a1_(a1),a2_(a2),a3_(a3),a4_(a4)
0129       {}
0130     group4(const group4&) = default;
0131     group4& operator=(const group4&) = delete;
0132 };
0133 
0134 template <class Ch, class Tr, class T1,class T2,class T3,class T4>
0135 inline
0136 BOOST_IO_STD basic_ostream<Ch, Tr>&
0137 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0138              const group4<T1,T2,T3,T4>& x)
0139 { 
0140    os << x.a1_<< x.a2_<< x.a3_<< x.a4_;  
0141    return os; 
0142 }
0143 
0144 template <class T1,class T2,class T3,class T4,class T5>
0145 struct group5
0146 {
0147     T1 a1_;
0148     T2 a2_;
0149     T3 a3_;
0150     T4 a4_;
0151     T5 a5_;
0152     group5(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5)
0153       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5)
0154       {}
0155     group5(const group5&) = default;
0156     group5& operator=(const group5&) = delete;
0157 };
0158 
0159 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5>
0160 inline
0161 BOOST_IO_STD basic_ostream<Ch, Tr>&
0162 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0163              const group5<T1,T2,T3,T4,T5>& x)
0164 { 
0165    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_;  
0166    return os; 
0167 }
0168 
0169 template <class T1,class T2,class T3,class T4,class T5,class T6>
0170 struct group6
0171 {
0172     T1 a1_;
0173     T2 a2_;
0174     T3 a3_;
0175     T4 a4_;
0176     T5 a5_;
0177     T6 a6_;
0178     group6(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6)
0179       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6)
0180       {}
0181     group6(const group6&) = default;
0182     group6& operator=(const group6&) = delete;
0183 };
0184 
0185 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6>
0186 inline
0187 BOOST_IO_STD basic_ostream<Ch, Tr>&
0188 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0189              const group6<T1,T2,T3,T4,T5,T6>& x)
0190 { 
0191    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_;  
0192    return os; 
0193 }
0194 
0195 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
0196 struct group7
0197 {
0198     T1 a1_;
0199     T2 a2_;
0200     T3 a3_;
0201     T4 a4_;
0202     T5 a5_;
0203     T6 a6_;
0204     T7 a7_;
0205     group7(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7)
0206       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7)
0207       {}
0208     group7(const group7&) = default;
0209     group7& operator=(const group7&) = delete;
0210 };
0211 
0212 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7>
0213 inline
0214 BOOST_IO_STD basic_ostream<Ch, Tr>&
0215 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0216              const group7<T1,T2,T3,T4,T5,T6,T7>& x)
0217 { 
0218    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_;  
0219    return os; 
0220 }
0221 
0222 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
0223 struct group8
0224 {
0225     T1 a1_;
0226     T2 a2_;
0227     T3 a3_;
0228     T4 a4_;
0229     T5 a5_;
0230     T6 a6_;
0231     T7 a7_;
0232     T8 a8_;
0233     group8(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8)
0234       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8)
0235       {}
0236     group8(const group8&) = default;
0237     group8& operator=(const group8&) = delete;
0238 };
0239 
0240 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
0241 inline
0242 BOOST_IO_STD basic_ostream<Ch, Tr>&
0243 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0244              const group8<T1,T2,T3,T4,T5,T6,T7,T8>& x)
0245 { 
0246    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_;  
0247    return os; 
0248 }
0249 
0250 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
0251 struct group9
0252 {
0253     T1 a1_;
0254     T2 a2_;
0255     T3 a3_;
0256     T4 a4_;
0257     T5 a5_;
0258     T6 a6_;
0259     T7 a7_;
0260     T8 a8_;
0261     T9 a9_;
0262     group9(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9)
0263       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9)
0264       {}
0265     group9(const group9&) = default;
0266     group9& operator=(const group9&) = delete;
0267 };
0268 
0269 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
0270 inline
0271 BOOST_IO_STD basic_ostream<Ch, Tr>&
0272 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0273              const group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>& x)
0274 { 
0275    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_;  
0276    return os; 
0277 }
0278 
0279 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
0280 struct group10
0281 {
0282     T1 a1_;
0283     T2 a2_;
0284     T3 a3_;
0285     T4 a4_;
0286     T5 a5_;
0287     T6 a6_;
0288     T7 a7_;
0289     T8 a8_;
0290     T9 a9_;
0291     T10 a10_;
0292     group10(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9,T10 a10)
0293       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9),a10_(a10)
0294       {}
0295     group10(const group10&) = default;
0296     group10& operator=(const group10&) = delete;
0297 };
0298 
0299 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>
0300 inline
0301 BOOST_IO_STD basic_ostream<Ch, Tr>&
0302 operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
0303              const group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>& x)
0304 { 
0305    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_<< x.a10_;  
0306    return os; 
0307 }
0308 
0309 
0310 
0311 
0312 template <class T1,class T2>
0313 inline
0314 group1<T1> 
0315 group_head( group2<T1,T2> const& x)
0316 {
0317    return group1<T1> (x.a1_); 
0318 }
0319 
0320 template <class T1,class T2>
0321 inline
0322 group1<T2> 
0323 group_last( group2<T1,T2> const& x)
0324 {
0325    return group1<T2> (x.a2_); 
0326 }
0327 
0328 
0329 
0330 template <class T1,class T2,class T3>
0331 inline
0332 group2<T1,T2> 
0333 group_head( group3<T1,T2,T3> const& x)
0334 {
0335    return group2<T1,T2> (x.a1_,x.a2_); 
0336 }
0337 
0338 template <class T1,class T2,class T3>
0339 inline
0340 group1<T3> 
0341 group_last( group3<T1,T2,T3> const& x)
0342 {
0343    return group1<T3> (x.a3_); 
0344 }
0345 
0346 
0347 
0348 template <class T1,class T2,class T3,class T4>
0349 inline
0350 group3<T1,T2,T3> 
0351 group_head( group4<T1,T2,T3,T4> const& x)
0352 {
0353    return group3<T1,T2,T3> (x.a1_,x.a2_,x.a3_); 
0354 }
0355 
0356 template <class T1,class T2,class T3,class T4>
0357 inline
0358 group1<T4> 
0359 group_last( group4<T1,T2,T3,T4> const& x)
0360 {
0361    return group1<T4> (x.a4_); 
0362 }
0363 
0364 
0365 
0366 template <class T1,class T2,class T3,class T4,class T5>
0367 inline
0368 group4<T1,T2,T3,T4> 
0369 group_head( group5<T1,T2,T3,T4,T5> const& x)
0370 {
0371    return group4<T1,T2,T3,T4> (x.a1_,x.a2_,x.a3_,x.a4_); 
0372 }
0373 
0374 template <class T1,class T2,class T3,class T4,class T5>
0375 inline
0376 group1<T5> 
0377 group_last( group5<T1,T2,T3,T4,T5> const& x)
0378 {
0379    return group1<T5> (x.a5_); 
0380 }
0381 
0382 
0383 
0384 template <class T1,class T2,class T3,class T4,class T5,class T6>
0385 inline
0386 group5<T1,T2,T3,T4,T5> 
0387 group_head( group6<T1,T2,T3,T4,T5,T6> const& x)
0388 {
0389    return group5<T1,T2,T3,T4,T5> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_); 
0390 }
0391 
0392 template <class T1,class T2,class T3,class T4,class T5,class T6>
0393 inline
0394 group1<T6> 
0395 group_last( group6<T1,T2,T3,T4,T5,T6> const& x)
0396 {
0397    return group1<T6> (x.a6_); 
0398 }
0399 
0400 
0401 
0402 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
0403 inline
0404 group6<T1,T2,T3,T4,T5,T6> 
0405 group_head( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
0406 {
0407    return group6<T1,T2,T3,T4,T5,T6> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_); 
0408 }
0409 
0410 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
0411 inline
0412 group1<T7> 
0413 group_last( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
0414 {
0415    return group1<T7> (x.a7_); 
0416 }
0417 
0418 
0419 
0420 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
0421 inline
0422 group7<T1,T2,T3,T4,T5,T6,T7> 
0423 group_head( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
0424 {
0425    return group7<T1,T2,T3,T4,T5,T6,T7> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_); 
0426 }
0427 
0428 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
0429 inline
0430 group1<T8> 
0431 group_last( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
0432 {
0433    return group1<T8> (x.a8_); 
0434 }
0435 
0436 
0437 
0438 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
0439 inline
0440 group8<T1,T2,T3,T4,T5,T6,T7,T8> 
0441 group_head( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
0442 {
0443    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_); 
0444 }
0445 
0446 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
0447 inline
0448 group1<T9> 
0449 group_last( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
0450 {
0451    return group1<T9> (x.a9_); 
0452 }
0453 
0454 
0455 
0456 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
0457 inline
0458 group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> 
0459 group_head( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
0460 {
0461    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_); 
0462 }
0463 
0464 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
0465 inline
0466 group1<T10> 
0467 group_last( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
0468 {
0469    return group1<T10> (x.a10_); 
0470 }
0471 
0472 
0473 
0474 
0475 
0476 } // namespace detail
0477 
0478 
0479 
0480 // helper functions
0481 
0482 
0483 inline detail::group1< detail::group0 >  
0484 group() { return detail::group1< detail::group0 > ( detail::group0() ); }
0485 
0486 template  <class T1, class Var> 
0487 inline
0488 detail::group1< detail::group2<T1, Var const&> >
0489   group(T1 a1, Var const& var)
0490 { 
0491    return detail::group1< detail::group2<T1, Var const&> >
0492                    ( detail::group2<T1, Var const&> 
0493                         (a1, var) 
0494                   );
0495 }
0496 
0497 template  <class T1,class T2, class Var> 
0498 inline
0499 detail::group1< detail::group3<T1,T2, Var const&> >
0500   group(T1 a1,T2 a2, Var const& var)
0501 { 
0502    return detail::group1< detail::group3<T1,T2, Var const&> >
0503                    ( detail::group3<T1,T2, Var const&> 
0504                         (a1,a2, var) 
0505                   );
0506 }
0507 
0508 template  <class T1,class T2,class T3, class Var> 
0509 inline
0510 detail::group1< detail::group4<T1,T2,T3, Var const&> >
0511   group(T1 a1,T2 a2,T3 a3, Var const& var)
0512 { 
0513    return detail::group1< detail::group4<T1,T2,T3, Var const&> >
0514                    ( detail::group4<T1,T2,T3, Var const&> 
0515                         (a1,a2,a3, var) 
0516                   );
0517 }
0518 
0519 template  <class T1,class T2,class T3,class T4, class Var> 
0520 inline
0521 detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
0522   group(T1 a1,T2 a2,T3 a3,T4 a4, Var const& var)
0523 { 
0524    return detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
0525                    ( detail::group5<T1,T2,T3,T4, Var const&> 
0526                         (a1,a2,a3,a4, var) 
0527                   );
0528 }
0529 
0530 template  <class T1,class T2,class T3,class T4,class T5, class Var> 
0531 inline
0532 detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
0533   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var const& var)
0534 { 
0535    return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
0536                    ( detail::group6<T1,T2,T3,T4,T5, Var const&> 
0537                         (a1,a2,a3,a4,a5, var) 
0538                   );
0539 }
0540 
0541 template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
0542 inline
0543 detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
0544   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var const& var)
0545 { 
0546    return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
0547                    ( detail::group7<T1,T2,T3,T4,T5,T6, Var const&> 
0548                         (a1,a2,a3,a4,a5,a6, var) 
0549                   );
0550 }
0551 
0552 template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
0553 inline
0554 detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
0555   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var const& var)
0556 { 
0557    return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
0558                    ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> 
0559                         (a1,a2,a3,a4,a5,a6,a7, var) 
0560                   );
0561 }
0562 
0563 template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
0564 inline
0565 detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
0566   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var const& var)
0567 { 
0568    return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
0569                    ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> 
0570                         (a1,a2,a3,a4,a5,a6,a7,a8, var) 
0571                   );
0572 }
0573 
0574 template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
0575 inline
0576 detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
0577   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var const& var)
0578 { 
0579    return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
0580                    ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> 
0581                         (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
0582                   );
0583 }
0584 
0585 
0586 #ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
0587 
0588 template  <class T1, class Var> 
0589 inline
0590 detail::group1< detail::group2<T1, Var&> >
0591   group(T1 a1, Var& var)
0592 { 
0593    return detail::group1< detail::group2<T1, Var&> >
0594                    ( detail::group2<T1, Var&> 
0595                         (a1, var) 
0596                   );
0597 }
0598 
0599 template  <class T1,class T2, class Var> 
0600 inline
0601 detail::group1< detail::group3<T1,T2, Var&> >
0602   group(T1 a1,T2 a2, Var& var)
0603 { 
0604    return detail::group1< detail::group3<T1,T2, Var&> >
0605                    ( detail::group3<T1,T2, Var&> 
0606                         (a1,a2, var) 
0607                   );
0608 }
0609 
0610 template  <class T1,class T2,class T3, class Var> 
0611 inline
0612 detail::group1< detail::group4<T1,T2,T3, Var&> >
0613   group(T1 a1,T2 a2,T3 a3, Var& var)
0614 { 
0615    return detail::group1< detail::group4<T1,T2,T3, Var&> >
0616                    ( detail::group4<T1,T2,T3, Var&> 
0617                         (a1,a2,a3, var) 
0618                   );
0619 }
0620 
0621 template  <class T1,class T2,class T3,class T4, class Var> 
0622 inline
0623 detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
0624   group(T1 a1,T2 a2,T3 a3,T4 a4, Var& var)
0625 { 
0626    return detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
0627                    ( detail::group5<T1,T2,T3,T4, Var&> 
0628                         (a1,a2,a3,a4, var) 
0629                   );
0630 }
0631 
0632 template  <class T1,class T2,class T3,class T4,class T5, class Var> 
0633 inline
0634 detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
0635   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var& var)
0636 { 
0637    return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
0638                    ( detail::group6<T1,T2,T3,T4,T5, Var&> 
0639                         (a1,a2,a3,a4,a5, var) 
0640                   );
0641 }
0642 
0643 template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
0644 inline
0645 detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
0646   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var& var)
0647 { 
0648    return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
0649                    ( detail::group7<T1,T2,T3,T4,T5,T6, Var&> 
0650                         (a1,a2,a3,a4,a5,a6, var) 
0651                   );
0652 }
0653 
0654 template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
0655 inline
0656 detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
0657   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var& var)
0658 { 
0659    return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
0660                    ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> 
0661                         (a1,a2,a3,a4,a5,a6,a7, var) 
0662                   );
0663 }
0664 
0665 template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
0666 inline
0667 detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
0668   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var& var)
0669 { 
0670    return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
0671                    ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> 
0672                         (a1,a2,a3,a4,a5,a6,a7,a8, var) 
0673                   );
0674 }
0675 
0676 template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
0677 inline
0678 detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
0679   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var& var)
0680 { 
0681    return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
0682                    ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> 
0683                         (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
0684                   );
0685 }
0686 
0687 
0688 #endif  // - BOOST_NO_OVERLOAD_FOR_NON_CONST
0689 
0690 
0691 } // namespace io
0692 
0693 } // namespace boost
0694 
0695 
0696 #endif   // BOOST_FORMAT_GROUP_HPP