File indexing completed on 2025-12-16 09:45:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
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
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 }
0477
0478
0479
0480
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
0689
0690
0691 }
0692
0693 }
0694
0695
0696 #endif