os/ossrv/ossrv_pub/boost_apis/boost/format/group.hpp
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/format/group.hpp	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,676 @@
     1.4 +
     1.5 +// ----------------------------------------------------------------------------
     1.6 +// group.hpp :  encapsulates a group of manipulators along with an argument
     1.7 +// ----------------------------------------------------------------------------
     1.8 +
     1.9 +//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
    1.10 +//  subject to the Boost Software License, Version 1.0. (See accompanying
    1.11 +//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
    1.12 +
    1.13 +//  See http://www.boost.org/libs/format for library home page
    1.14 +
    1.15 +// ----------------------------------------------------------------------------
    1.16 +
    1.17 +                      
    1.18 +// group_head : cut the last element of a group out.
    1.19 +// (is overloaded below on each type of group)
    1.20 +
    1.21 +// group_last : returns the last element of a group
    1.22 +// (is overloaded below on each type of group)
    1.23 +// ----------------------------------------------------------------------------
    1.24 +
    1.25 +
    1.26 +#ifndef BOOST_FORMAT_GROUP_HPP
    1.27 +#define BOOST_FORMAT_GROUP_HPP
    1.28 +
    1.29 +#include <boost/config.hpp>
    1.30 +
    1.31 +
    1.32 +namespace boost {
    1.33 +namespace io {
    1.34 +
    1.35 +
    1.36 +namespace detail {
    1.37 +
    1.38 +
    1.39 +// empty group, but useful even though.
    1.40 +struct group0 
    1.41 +{
    1.42 +    group0()      {}
    1.43 +};
    1.44 +
    1.45 +template <class Ch, class Tr>
    1.46 +inline
    1.47 +BOOST_IO_STD basic_ostream<Ch, Tr>&
    1.48 +operator << ( BOOST_IO_STD basic_ostream<Ch, Tr>& os,
    1.49 +             const group0& )
    1.50 +{ 
    1.51 +   return os; 
    1.52 +}
    1.53 +
    1.54 +template <class T1>
    1.55 +struct group1
    1.56 +{
    1.57 +    T1 a1_;
    1.58 +    group1(T1 a1)
    1.59 +      : a1_(a1)
    1.60 +      {}
    1.61 +};
    1.62 +
    1.63 +template <class Ch, class Tr, class T1>
    1.64 +inline
    1.65 +BOOST_IO_STD basic_ostream<Ch, Tr>&
    1.66 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
    1.67 +             const group1<T1>& x)
    1.68 +{ 
    1.69 +   os << x.a1_;  
    1.70 +   return os; 
    1.71 +}
    1.72 +
    1.73 +
    1.74 +
    1.75 +
    1.76 +template <class T1,class T2>
    1.77 +struct group2
    1.78 +{
    1.79 +    T1 a1_;
    1.80 +    T2 a2_;
    1.81 +    group2(T1 a1,T2 a2)
    1.82 +      : a1_(a1),a2_(a2)
    1.83 +      {}
    1.84 +};
    1.85 +
    1.86 +template <class Ch, class Tr, class T1,class T2>
    1.87 +inline
    1.88 +BOOST_IO_STD basic_ostream<Ch, Tr>&
    1.89 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
    1.90 +             const group2<T1,T2>& x)
    1.91 +{ 
    1.92 +   os << x.a1_<< x.a2_;  
    1.93 +   return os; 
    1.94 +}
    1.95 +
    1.96 +template <class T1,class T2,class T3>
    1.97 +struct group3
    1.98 +{
    1.99 +    T1 a1_;
   1.100 +    T2 a2_;
   1.101 +    T3 a3_;
   1.102 +    group3(T1 a1,T2 a2,T3 a3)
   1.103 +      : a1_(a1),a2_(a2),a3_(a3)
   1.104 +      {}
   1.105 +};
   1.106 +
   1.107 +template <class Ch, class Tr, class T1,class T2,class T3>
   1.108 +inline
   1.109 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.110 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.111 +             const group3<T1,T2,T3>& x)
   1.112 +{ 
   1.113 +   os << x.a1_<< x.a2_<< x.a3_;  
   1.114 +   return os; 
   1.115 +}
   1.116 +
   1.117 +template <class T1,class T2,class T3,class T4>
   1.118 +struct group4
   1.119 +{
   1.120 +    T1 a1_;
   1.121 +    T2 a2_;
   1.122 +    T3 a3_;
   1.123 +    T4 a4_;
   1.124 +    group4(T1 a1,T2 a2,T3 a3,T4 a4)
   1.125 +      : a1_(a1),a2_(a2),a3_(a3),a4_(a4)
   1.126 +      {}
   1.127 +};
   1.128 +
   1.129 +template <class Ch, class Tr, class T1,class T2,class T3,class T4>
   1.130 +inline
   1.131 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.132 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.133 +             const group4<T1,T2,T3,T4>& x)
   1.134 +{ 
   1.135 +   os << x.a1_<< x.a2_<< x.a3_<< x.a4_;  
   1.136 +   return os; 
   1.137 +}
   1.138 +
   1.139 +template <class T1,class T2,class T3,class T4,class T5>
   1.140 +struct group5
   1.141 +{
   1.142 +    T1 a1_;
   1.143 +    T2 a2_;
   1.144 +    T3 a3_;
   1.145 +    T4 a4_;
   1.146 +    T5 a5_;
   1.147 +    group5(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5)
   1.148 +      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5)
   1.149 +      {}
   1.150 +};
   1.151 +
   1.152 +template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5>
   1.153 +inline
   1.154 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.155 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.156 +             const group5<T1,T2,T3,T4,T5>& x)
   1.157 +{ 
   1.158 +   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_;  
   1.159 +   return os; 
   1.160 +}
   1.161 +
   1.162 +template <class T1,class T2,class T3,class T4,class T5,class T6>
   1.163 +struct group6
   1.164 +{
   1.165 +    T1 a1_;
   1.166 +    T2 a2_;
   1.167 +    T3 a3_;
   1.168 +    T4 a4_;
   1.169 +    T5 a5_;
   1.170 +    T6 a6_;
   1.171 +    group6(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6)
   1.172 +      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6)
   1.173 +      {}
   1.174 +};
   1.175 +
   1.176 +template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6>
   1.177 +inline
   1.178 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.179 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.180 +             const group6<T1,T2,T3,T4,T5,T6>& x)
   1.181 +{ 
   1.182 +   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_;  
   1.183 +   return os; 
   1.184 +}
   1.185 +
   1.186 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
   1.187 +struct group7
   1.188 +{
   1.189 +    T1 a1_;
   1.190 +    T2 a2_;
   1.191 +    T3 a3_;
   1.192 +    T4 a4_;
   1.193 +    T5 a5_;
   1.194 +    T6 a6_;
   1.195 +    T7 a7_;
   1.196 +    group7(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7)
   1.197 +      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7)
   1.198 +      {}
   1.199 +};
   1.200 +
   1.201 +template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7>
   1.202 +inline
   1.203 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.204 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.205 +             const group7<T1,T2,T3,T4,T5,T6,T7>& x)
   1.206 +{ 
   1.207 +   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_;  
   1.208 +   return os; 
   1.209 +}
   1.210 +
   1.211 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
   1.212 +struct group8
   1.213 +{
   1.214 +    T1 a1_;
   1.215 +    T2 a2_;
   1.216 +    T3 a3_;
   1.217 +    T4 a4_;
   1.218 +    T5 a5_;
   1.219 +    T6 a6_;
   1.220 +    T7 a7_;
   1.221 +    T8 a8_;
   1.222 +    group8(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8)
   1.223 +      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8)
   1.224 +      {}
   1.225 +};
   1.226 +
   1.227 +template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
   1.228 +inline
   1.229 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.230 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.231 +             const group8<T1,T2,T3,T4,T5,T6,T7,T8>& x)
   1.232 +{ 
   1.233 +   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_;  
   1.234 +   return os; 
   1.235 +}
   1.236 +
   1.237 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
   1.238 +struct group9
   1.239 +{
   1.240 +    T1 a1_;
   1.241 +    T2 a2_;
   1.242 +    T3 a3_;
   1.243 +    T4 a4_;
   1.244 +    T5 a5_;
   1.245 +    T6 a6_;
   1.246 +    T7 a7_;
   1.247 +    T8 a8_;
   1.248 +    T9 a9_;
   1.249 +    group9(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9)
   1.250 +      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9)
   1.251 +      {}
   1.252 +};
   1.253 +
   1.254 +template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
   1.255 +inline
   1.256 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.257 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.258 +             const group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>& x)
   1.259 +{ 
   1.260 +   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_;  
   1.261 +   return os; 
   1.262 +}
   1.263 +
   1.264 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
   1.265 +struct group10
   1.266 +{
   1.267 +    T1 a1_;
   1.268 +    T2 a2_;
   1.269 +    T3 a3_;
   1.270 +    T4 a4_;
   1.271 +    T5 a5_;
   1.272 +    T6 a6_;
   1.273 +    T7 a7_;
   1.274 +    T8 a8_;
   1.275 +    T9 a9_;
   1.276 +    T10 a10_;
   1.277 +    group10(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9,T10 a10)
   1.278 +      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9),a10_(a10)
   1.279 +      {}
   1.280 +};
   1.281 +
   1.282 +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>
   1.283 +inline
   1.284 +BOOST_IO_STD basic_ostream<Ch, Tr>&
   1.285 +operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
   1.286 +             const group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>& x)
   1.287 +{ 
   1.288 +   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_<< x.a10_;  
   1.289 +   return os; 
   1.290 +}
   1.291 +
   1.292 +
   1.293 +
   1.294 +
   1.295 +template <class T1,class T2>
   1.296 +inline
   1.297 +group1<T1> 
   1.298 +group_head( group2<T1,T2> const& x)
   1.299 +{
   1.300 +   return group1<T1> (x.a1_); 
   1.301 +}
   1.302 +
   1.303 +template <class T1,class T2>
   1.304 +inline
   1.305 +group1<T2> 
   1.306 +group_last( group2<T1,T2> const& x)
   1.307 +{
   1.308 +   return group1<T2> (x.a2_); 
   1.309 +}
   1.310 +
   1.311 +
   1.312 +
   1.313 +template <class T1,class T2,class T3>
   1.314 +inline
   1.315 +group2<T1,T2> 
   1.316 +group_head( group3<T1,T2,T3> const& x)
   1.317 +{
   1.318 +   return group2<T1,T2> (x.a1_,x.a2_); 
   1.319 +}
   1.320 +
   1.321 +template <class T1,class T2,class T3>
   1.322 +inline
   1.323 +group1<T3> 
   1.324 +group_last( group3<T1,T2,T3> const& x)
   1.325 +{
   1.326 +   return group1<T3> (x.a3_); 
   1.327 +}
   1.328 +
   1.329 +
   1.330 +
   1.331 +template <class T1,class T2,class T3,class T4>
   1.332 +inline
   1.333 +group3<T1,T2,T3> 
   1.334 +group_head( group4<T1,T2,T3,T4> const& x)
   1.335 +{
   1.336 +   return group3<T1,T2,T3> (x.a1_,x.a2_,x.a3_); 
   1.337 +}
   1.338 +
   1.339 +template <class T1,class T2,class T3,class T4>
   1.340 +inline
   1.341 +group1<T4> 
   1.342 +group_last( group4<T1,T2,T3,T4> const& x)
   1.343 +{
   1.344 +   return group1<T4> (x.a4_); 
   1.345 +}
   1.346 +
   1.347 +
   1.348 +
   1.349 +template <class T1,class T2,class T3,class T4,class T5>
   1.350 +inline
   1.351 +group4<T1,T2,T3,T4> 
   1.352 +group_head( group5<T1,T2,T3,T4,T5> const& x)
   1.353 +{
   1.354 +   return group4<T1,T2,T3,T4> (x.a1_,x.a2_,x.a3_,x.a4_); 
   1.355 +}
   1.356 +
   1.357 +template <class T1,class T2,class T3,class T4,class T5>
   1.358 +inline
   1.359 +group1<T5> 
   1.360 +group_last( group5<T1,T2,T3,T4,T5> const& x)
   1.361 +{
   1.362 +   return group1<T5> (x.a5_); 
   1.363 +}
   1.364 +
   1.365 +
   1.366 +
   1.367 +template <class T1,class T2,class T3,class T4,class T5,class T6>
   1.368 +inline
   1.369 +group5<T1,T2,T3,T4,T5> 
   1.370 +group_head( group6<T1,T2,T3,T4,T5,T6> const& x)
   1.371 +{
   1.372 +   return group5<T1,T2,T3,T4,T5> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_); 
   1.373 +}
   1.374 +
   1.375 +template <class T1,class T2,class T3,class T4,class T5,class T6>
   1.376 +inline
   1.377 +group1<T6> 
   1.378 +group_last( group6<T1,T2,T3,T4,T5,T6> const& x)
   1.379 +{
   1.380 +   return group1<T6> (x.a6_); 
   1.381 +}
   1.382 +
   1.383 +
   1.384 +
   1.385 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
   1.386 +inline
   1.387 +group6<T1,T2,T3,T4,T5,T6> 
   1.388 +group_head( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
   1.389 +{
   1.390 +   return group6<T1,T2,T3,T4,T5,T6> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_); 
   1.391 +}
   1.392 +
   1.393 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
   1.394 +inline
   1.395 +group1<T7> 
   1.396 +group_last( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
   1.397 +{
   1.398 +   return group1<T7> (x.a7_); 
   1.399 +}
   1.400 +
   1.401 +
   1.402 +
   1.403 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
   1.404 +inline
   1.405 +group7<T1,T2,T3,T4,T5,T6,T7> 
   1.406 +group_head( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
   1.407 +{
   1.408 +   return group7<T1,T2,T3,T4,T5,T6,T7> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_); 
   1.409 +}
   1.410 +
   1.411 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
   1.412 +inline
   1.413 +group1<T8> 
   1.414 +group_last( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
   1.415 +{
   1.416 +   return group1<T8> (x.a8_); 
   1.417 +}
   1.418 +
   1.419 +
   1.420 +
   1.421 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
   1.422 +inline
   1.423 +group8<T1,T2,T3,T4,T5,T6,T7,T8> 
   1.424 +group_head( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
   1.425 +{
   1.426 +   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_); 
   1.427 +}
   1.428 +
   1.429 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
   1.430 +inline
   1.431 +group1<T9> 
   1.432 +group_last( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
   1.433 +{
   1.434 +   return group1<T9> (x.a9_); 
   1.435 +}
   1.436 +
   1.437 +
   1.438 +
   1.439 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
   1.440 +inline
   1.441 +group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> 
   1.442 +group_head( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
   1.443 +{
   1.444 +   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_); 
   1.445 +}
   1.446 +
   1.447 +template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
   1.448 +inline
   1.449 +group1<T10> 
   1.450 +group_last( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
   1.451 +{
   1.452 +   return group1<T10> (x.a10_); 
   1.453 +}
   1.454 +
   1.455 +
   1.456 +
   1.457 +
   1.458 +
   1.459 +} // namespace detail
   1.460 +
   1.461 +
   1.462 +
   1.463 +// helper functions
   1.464 +
   1.465 +
   1.466 +inline detail::group1< detail::group0 >  
   1.467 +group() { return detail::group1< detail::group0 > ( detail::group0() ); }
   1.468 +
   1.469 +template  <class T1, class Var> 
   1.470 +inline
   1.471 +detail::group1< detail::group2<T1, Var const&> >
   1.472 +  group(T1 a1, Var const& var)
   1.473 +{ 
   1.474 +   return detail::group1< detail::group2<T1, Var const&> >
   1.475 +                   ( detail::group2<T1, Var const&> 
   1.476 +                        (a1, var) 
   1.477 +                  );
   1.478 +}
   1.479 +
   1.480 +template  <class T1,class T2, class Var> 
   1.481 +inline
   1.482 +detail::group1< detail::group3<T1,T2, Var const&> >
   1.483 +  group(T1 a1,T2 a2, Var const& var)
   1.484 +{ 
   1.485 +   return detail::group1< detail::group3<T1,T2, Var const&> >
   1.486 +                   ( detail::group3<T1,T2, Var const&> 
   1.487 +                        (a1,a2, var) 
   1.488 +                  );
   1.489 +}
   1.490 +
   1.491 +template  <class T1,class T2,class T3, class Var> 
   1.492 +inline
   1.493 +detail::group1< detail::group4<T1,T2,T3, Var const&> >
   1.494 +  group(T1 a1,T2 a2,T3 a3, Var const& var)
   1.495 +{ 
   1.496 +   return detail::group1< detail::group4<T1,T2,T3, Var const&> >
   1.497 +                   ( detail::group4<T1,T2,T3, Var const&> 
   1.498 +                        (a1,a2,a3, var) 
   1.499 +                  );
   1.500 +}
   1.501 +
   1.502 +template  <class T1,class T2,class T3,class T4, class Var> 
   1.503 +inline
   1.504 +detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
   1.505 +  group(T1 a1,T2 a2,T3 a3,T4 a4, Var const& var)
   1.506 +{ 
   1.507 +   return detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
   1.508 +                   ( detail::group5<T1,T2,T3,T4, Var const&> 
   1.509 +                        (a1,a2,a3,a4, var) 
   1.510 +                  );
   1.511 +}
   1.512 +
   1.513 +template  <class T1,class T2,class T3,class T4,class T5, class Var> 
   1.514 +inline
   1.515 +detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
   1.516 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var const& var)
   1.517 +{ 
   1.518 +   return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
   1.519 +                   ( detail::group6<T1,T2,T3,T4,T5, Var const&> 
   1.520 +                        (a1,a2,a3,a4,a5, var) 
   1.521 +                  );
   1.522 +}
   1.523 +
   1.524 +template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
   1.525 +inline
   1.526 +detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
   1.527 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var const& var)
   1.528 +{ 
   1.529 +   return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
   1.530 +                   ( detail::group7<T1,T2,T3,T4,T5,T6, Var const&> 
   1.531 +                        (a1,a2,a3,a4,a5,a6, var) 
   1.532 +                  );
   1.533 +}
   1.534 +
   1.535 +template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
   1.536 +inline
   1.537 +detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
   1.538 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var const& var)
   1.539 +{ 
   1.540 +   return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
   1.541 +                   ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> 
   1.542 +                        (a1,a2,a3,a4,a5,a6,a7, var) 
   1.543 +                  );
   1.544 +}
   1.545 +
   1.546 +template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
   1.547 +inline
   1.548 +detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
   1.549 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var const& var)
   1.550 +{ 
   1.551 +   return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
   1.552 +                   ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> 
   1.553 +                        (a1,a2,a3,a4,a5,a6,a7,a8, var) 
   1.554 +                  );
   1.555 +}
   1.556 +
   1.557 +template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
   1.558 +inline
   1.559 +detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
   1.560 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var const& var)
   1.561 +{ 
   1.562 +   return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
   1.563 +                   ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> 
   1.564 +                        (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
   1.565 +                  );
   1.566 +}
   1.567 +
   1.568 +
   1.569 +#ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
   1.570 +
   1.571 +template  <class T1, class Var> 
   1.572 +inline
   1.573 +detail::group1< detail::group2<T1, Var&> >
   1.574 +  group(T1 a1, Var& var)
   1.575 +{ 
   1.576 +   return detail::group1< detail::group2<T1, Var&> >
   1.577 +                   ( detail::group2<T1, Var&> 
   1.578 +                        (a1, var) 
   1.579 +                  );
   1.580 +}
   1.581 +
   1.582 +template  <class T1,class T2, class Var> 
   1.583 +inline
   1.584 +detail::group1< detail::group3<T1,T2, Var&> >
   1.585 +  group(T1 a1,T2 a2, Var& var)
   1.586 +{ 
   1.587 +   return detail::group1< detail::group3<T1,T2, Var&> >
   1.588 +                   ( detail::group3<T1,T2, Var&> 
   1.589 +                        (a1,a2, var) 
   1.590 +                  );
   1.591 +}
   1.592 +
   1.593 +template  <class T1,class T2,class T3, class Var> 
   1.594 +inline
   1.595 +detail::group1< detail::group4<T1,T2,T3, Var&> >
   1.596 +  group(T1 a1,T2 a2,T3 a3, Var& var)
   1.597 +{ 
   1.598 +   return detail::group1< detail::group4<T1,T2,T3, Var&> >
   1.599 +                   ( detail::group4<T1,T2,T3, Var&> 
   1.600 +                        (a1,a2,a3, var) 
   1.601 +                  );
   1.602 +}
   1.603 +
   1.604 +template  <class T1,class T2,class T3,class T4, class Var> 
   1.605 +inline
   1.606 +detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
   1.607 +  group(T1 a1,T2 a2,T3 a3,T4 a4, Var& var)
   1.608 +{ 
   1.609 +   return detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
   1.610 +                   ( detail::group5<T1,T2,T3,T4, Var&> 
   1.611 +                        (a1,a2,a3,a4, var) 
   1.612 +                  );
   1.613 +}
   1.614 +
   1.615 +template  <class T1,class T2,class T3,class T4,class T5, class Var> 
   1.616 +inline
   1.617 +detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
   1.618 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var& var)
   1.619 +{ 
   1.620 +   return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
   1.621 +                   ( detail::group6<T1,T2,T3,T4,T5, Var&> 
   1.622 +                        (a1,a2,a3,a4,a5, var) 
   1.623 +                  );
   1.624 +}
   1.625 +
   1.626 +template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
   1.627 +inline
   1.628 +detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
   1.629 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var& var)
   1.630 +{ 
   1.631 +   return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
   1.632 +                   ( detail::group7<T1,T2,T3,T4,T5,T6, Var&> 
   1.633 +                        (a1,a2,a3,a4,a5,a6, var) 
   1.634 +                  );
   1.635 +}
   1.636 +
   1.637 +template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
   1.638 +inline
   1.639 +detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
   1.640 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var& var)
   1.641 +{ 
   1.642 +   return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
   1.643 +                   ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> 
   1.644 +                        (a1,a2,a3,a4,a5,a6,a7, var) 
   1.645 +                  );
   1.646 +}
   1.647 +
   1.648 +template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
   1.649 +inline
   1.650 +detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
   1.651 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var& var)
   1.652 +{ 
   1.653 +   return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
   1.654 +                   ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> 
   1.655 +                        (a1,a2,a3,a4,a5,a6,a7,a8, var) 
   1.656 +                  );
   1.657 +}
   1.658 +
   1.659 +template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
   1.660 +inline
   1.661 +detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
   1.662 +  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var& var)
   1.663 +{ 
   1.664 +   return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
   1.665 +                   ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> 
   1.666 +                        (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
   1.667 +                  );
   1.668 +}
   1.669 +
   1.670 +
   1.671 +#endif  // - BOOST_NO_OVERLOAD_FOR_NON_CONST
   1.672 +
   1.673 +
   1.674 +} // namespace io
   1.675 +
   1.676 +} // namespace boost
   1.677 +
   1.678 +
   1.679 +#endif   // BOOST_FORMAT_GROUP_HPP