680 lines
		
	
	
	
		
			17 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			680 lines
		
	
	
	
		
			17 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
 | |
| // -*- C++ -*-
 | |
| //  Boost general library 'format'   ---------------------------
 | |
| //  See http://www.boost.org for updates, documentation, and revision history.
 | |
| 
 | |
| //  (C) Samuel Krempp 2001
 | |
| //                  krempp@crans.ens-cachan.fr
 | |
| //  Permission to copy, use, modify, sell and
 | |
| //  distribute this software is granted provided this copyright notice appears
 | |
| //  in all copies. This software is provided "as is" without express or implied
 | |
| //  warranty, and with no claim as to its suitability for any purpose.
 | |
| 
 | |
| // ideas taken from Rüdiger Loos's format class
 | |
| // and Karl Nelson's ofstream
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| // group.hpp :  encapsulates a group of manipulators along with an argument
 | |
| //                      
 | |
| // group_head : cut the last element of a group out.
 | |
| // (is overloaded below on each type of group)
 | |
| 
 | |
| // group_last : returns the last element of a group
 | |
| // (is overloaded below on each type of group)
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| #ifndef BOOST_FORMAT_GROUP_HPP
 | |
| #define BOOST_FORMAT_GROUP_HPP
 | |
| 
 | |
| 
 | |
| namespace boost {
 | |
| namespace io {
 | |
| 
 | |
| 
 | |
| namespace detail {
 | |
| 
 | |
| 
 | |
| // empty group, but useful even though.
 | |
| struct group0 
 | |
| {
 | |
|     group0()      {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << ( BOOST_IO_STD ostream& os,
 | |
|              const group0& )
 | |
| { 
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1>
 | |
| struct group1
 | |
| {
 | |
|     T1 a1_;
 | |
|     group1(T1 a1)
 | |
|       : a1_(a1)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group1<T1>& x)
 | |
| { 
 | |
|    os << x.a1_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2>
 | |
| struct group2
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     group2(T1 a1,T2 a2)
 | |
|       : a1_(a1),a2_(a2)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group2<T1,T2>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3>
 | |
| struct group3
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     group3(T1 a1,T2 a2,T3 a3)
 | |
|       : a1_(a1),a2_(a2),a3_(a3)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2,class T3>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group3<T1,T2,T3>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4>
 | |
| struct group4
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     T4 a4_;
 | |
|     group4(T1 a1,T2 a2,T3 a3,T4 a4)
 | |
|       : a1_(a1),a2_(a2),a3_(a3),a4_(a4)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2,class T3,class T4>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group4<T1,T2,T3,T4>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_<< x.a4_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5>
 | |
| struct group5
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     T4 a4_;
 | |
|     T5 a5_;
 | |
|     group5(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5)
 | |
|       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group5<T1,T2,T3,T4,T5>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6>
 | |
| struct group6
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     T4 a4_;
 | |
|     T5 a5_;
 | |
|     T6 a6_;
 | |
|     group6(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6)
 | |
|       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group6<T1,T2,T3,T4,T5,T6>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
 | |
| struct group7
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     T4 a4_;
 | |
|     T5 a5_;
 | |
|     T6 a6_;
 | |
|     T7 a7_;
 | |
|     group7(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7)
 | |
|       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group7<T1,T2,T3,T4,T5,T6,T7>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
 | |
| struct group8
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     T4 a4_;
 | |
|     T5 a5_;
 | |
|     T6 a6_;
 | |
|     T7 a7_;
 | |
|     T8 a8_;
 | |
|     group8(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8)
 | |
|       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group8<T1,T2,T3,T4,T5,T6,T7,T8>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
 | |
| struct group9
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     T4 a4_;
 | |
|     T5 a5_;
 | |
|     T6 a6_;
 | |
|     T7 a7_;
 | |
|     T8 a8_;
 | |
|     T9 a9_;
 | |
|     group9(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9)
 | |
|       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
 | |
| struct group10
 | |
| {
 | |
|     T1 a1_;
 | |
|     T2 a2_;
 | |
|     T3 a3_;
 | |
|     T4 a4_;
 | |
|     T5 a5_;
 | |
|     T6 a6_;
 | |
|     T7 a7_;
 | |
|     T8 a8_;
 | |
|     T9 a9_;
 | |
|     T10 a10_;
 | |
|     group10(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9,T10 a10)
 | |
|       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9),a10_(a10)
 | |
|       {}
 | |
| };
 | |
| 
 | |
| 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>
 | |
| inline
 | |
| BOOST_IO_STD ostream&
 | |
| operator << (BOOST_IO_STD ostream& os,
 | |
|              const group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>& x)
 | |
| { 
 | |
|    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_<< x.a10_;  
 | |
|    return os; 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2>
 | |
| inline
 | |
| group1<T1> 
 | |
| group_head( group2<T1,T2> const& x)
 | |
| {
 | |
|    return group1<T1> (x.a1_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2>
 | |
| inline
 | |
| group1<T2> 
 | |
| group_last( group2<T1,T2> const& x)
 | |
| {
 | |
|    return group1<T2> (x.a2_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3>
 | |
| inline
 | |
| group2<T1,T2> 
 | |
| group_head( group3<T1,T2,T3> const& x)
 | |
| {
 | |
|    return group2<T1,T2> (x.a1_,x.a2_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3>
 | |
| inline
 | |
| group1<T3> 
 | |
| group_last( group3<T1,T2,T3> const& x)
 | |
| {
 | |
|    return group1<T3> (x.a3_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4>
 | |
| inline
 | |
| group3<T1,T2,T3> 
 | |
| group_head( group4<T1,T2,T3,T4> const& x)
 | |
| {
 | |
|    return group3<T1,T2,T3> (x.a1_,x.a2_,x.a3_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4>
 | |
| inline
 | |
| group1<T4> 
 | |
| group_last( group4<T1,T2,T3,T4> const& x)
 | |
| {
 | |
|    return group1<T4> (x.a4_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5>
 | |
| inline
 | |
| group4<T1,T2,T3,T4> 
 | |
| group_head( group5<T1,T2,T3,T4,T5> const& x)
 | |
| {
 | |
|    return group4<T1,T2,T3,T4> (x.a1_,x.a2_,x.a3_,x.a4_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5>
 | |
| inline
 | |
| group1<T5> 
 | |
| group_last( group5<T1,T2,T3,T4,T5> const& x)
 | |
| {
 | |
|    return group1<T5> (x.a5_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6>
 | |
| inline
 | |
| group5<T1,T2,T3,T4,T5> 
 | |
| group_head( group6<T1,T2,T3,T4,T5,T6> const& x)
 | |
| {
 | |
|    return group5<T1,T2,T3,T4,T5> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6>
 | |
| inline
 | |
| group1<T6> 
 | |
| group_last( group6<T1,T2,T3,T4,T5,T6> const& x)
 | |
| {
 | |
|    return group1<T6> (x.a6_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
 | |
| inline
 | |
| group6<T1,T2,T3,T4,T5,T6> 
 | |
| group_head( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
 | |
| {
 | |
|    return group6<T1,T2,T3,T4,T5,T6> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
 | |
| inline
 | |
| group1<T7> 
 | |
| group_last( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
 | |
| {
 | |
|    return group1<T7> (x.a7_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
 | |
| inline
 | |
| group7<T1,T2,T3,T4,T5,T6,T7> 
 | |
| group_head( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
 | |
| {
 | |
|    return group7<T1,T2,T3,T4,T5,T6,T7> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
 | |
| inline
 | |
| group1<T8> 
 | |
| group_last( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
 | |
| {
 | |
|    return group1<T8> (x.a8_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
 | |
| inline
 | |
| group8<T1,T2,T3,T4,T5,T6,T7,T8> 
 | |
| group_head( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
 | |
| {
 | |
|    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_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
 | |
| inline
 | |
| group1<T9> 
 | |
| group_last( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
 | |
| {
 | |
|    return group1<T9> (x.a9_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
 | |
| inline
 | |
| group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> 
 | |
| group_head( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
 | |
| {
 | |
|    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_); 
 | |
| }
 | |
| 
 | |
| template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
 | |
| inline
 | |
| group1<T10> 
 | |
| group_last( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
 | |
| {
 | |
|    return group1<T10> (x.a10_); 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| } // namespace detail
 | |
| 
 | |
| 
 | |
| 
 | |
| // helper functions
 | |
| 
 | |
| 
 | |
| inline detail::group1< detail::group0 >  
 | |
| group() { return detail::group1< detail::group0 > ( detail::group0() ); }
 | |
| 
 | |
| template  <class T1, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group2<T1, Var const&> >
 | |
|   group(T1 a1, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group2<T1, Var const&> >
 | |
|                    ( detail::group2<T1, Var const&> 
 | |
|                         (a1, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group3<T1,T2, Var const&> >
 | |
|   group(T1 a1,T2 a2, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group3<T1,T2, Var const&> >
 | |
|                    ( detail::group3<T1,T2, Var const&> 
 | |
|                         (a1,a2, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group4<T1,T2,T3, Var const&> >
 | |
|   group(T1 a1,T2 a2,T3 a3, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group4<T1,T2,T3, Var const&> >
 | |
|                    ( detail::group4<T1,T2,T3, Var const&> 
 | |
|                         (a1,a2,a3, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
 | |
|                    ( detail::group5<T1,T2,T3,T4, Var const&> 
 | |
|                         (a1,a2,a3,a4, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
 | |
|                    ( detail::group6<T1,T2,T3,T4,T5, Var const&> 
 | |
|                         (a1,a2,a3,a4,a5, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
 | |
|                    ( detail::group7<T1,T2,T3,T4,T5,T6, Var const&> 
 | |
|                         (a1,a2,a3,a4,a5,a6, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
 | |
|                    ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> 
 | |
|                         (a1,a2,a3,a4,a5,a6,a7, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
 | |
|                    ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> 
 | |
|                         (a1,a2,a3,a4,a5,a6,a7,a8, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var const& var)
 | |
| { 
 | |
|    return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
 | |
|                    ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> 
 | |
|                         (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| 
 | |
| #ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
 | |
| 
 | |
| template  <class T1, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group2<T1, Var&> >
 | |
|   group(T1 a1, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group2<T1, Var&> >
 | |
|                    ( detail::group2<T1, Var&> 
 | |
|                         (a1, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group3<T1,T2, Var&> >
 | |
|   group(T1 a1,T2 a2, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group3<T1,T2, Var&> >
 | |
|                    ( detail::group3<T1,T2, Var&> 
 | |
|                         (a1,a2, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group4<T1,T2,T3, Var&> >
 | |
|   group(T1 a1,T2 a2,T3 a3, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group4<T1,T2,T3, Var&> >
 | |
|                    ( detail::group4<T1,T2,T3, Var&> 
 | |
|                         (a1,a2,a3, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
 | |
|                    ( detail::group5<T1,T2,T3,T4, Var&> 
 | |
|                         (a1,a2,a3,a4, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
 | |
|                    ( detail::group6<T1,T2,T3,T4,T5, Var&> 
 | |
|                         (a1,a2,a3,a4,a5, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
 | |
|                    ( detail::group7<T1,T2,T3,T4,T5,T6, Var&> 
 | |
|                         (a1,a2,a3,a4,a5,a6, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
 | |
|                    ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> 
 | |
|                         (a1,a2,a3,a4,a5,a6,a7, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
 | |
|                    ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> 
 | |
|                         (a1,a2,a3,a4,a5,a6,a7,a8, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
 | |
| inline
 | |
| detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
 | |
|   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var& var)
 | |
| { 
 | |
|    return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
 | |
|                    ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> 
 | |
|                         (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
 | |
|                   );
 | |
| }
 | |
| 
 | |
| 
 | |
| #endif  //end- #ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
 | |
| 
 | |
| 
 | |
| } // namespace io
 | |
| 
 | |
| } // namespace boost
 | |
| 
 | |
| 
 | |
| #endif   // BOOST_FORMAT_GROUP_HPP
 |