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