| |
| // ---------------------------------------------------------------------------- |
| // group.hpp : encapsulates a group of manipulators along with an argument |
| // ---------------------------------------------------------------------------- |
| |
| // Copyright Samuel Krempp 2003. Use, modification, and distribution are |
| // subject to the Boost Software License, Version 1.0. (See accompanying |
| // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| |
| // See http://www.boost.org/libs/format for library home page |
| |
| // ---------------------------------------------------------------------------- |
| |
| |
| // 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 |
| |
| #include <boost/config.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 basic_ostream<Ch, Tr>& |
| operator << ( BOOST_IO_STD basic_ostream<Ch, Tr>& os, |
| const group0& ) |
| { |
| return os; |
| } |
| |
| template <class T1> |
| struct group1 |
| { |
| T1 a1_; |
| group1(T1 a1) |
| : a1_(a1) |
| {} |
| private: |
| group1& operator=(const group1&); |
| }; |
| |
| template <class Ch, class Tr, class T1> |
| inline |
| BOOST_IO_STD basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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) |
| {} |
| private: |
| group2& operator=(const group2&); |
| }; |
| |
| template <class Ch, class Tr, class T1,class T2> |
| inline |
| BOOST_IO_STD basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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) |
| {} |
| private: |
| group3& operator=(const group3&); |
| }; |
| |
| template <class Ch, class Tr, class T1,class T2,class T3> |
| inline |
| BOOST_IO_STD basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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) |
| {} |
| private: |
| group4& operator=(const group4&); |
| }; |
| |
| template <class Ch, class Tr, class T1,class T2,class T3,class T4> |
| inline |
| BOOST_IO_STD basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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 basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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 basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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 basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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 basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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 basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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 basic_ostream<Ch, Tr>& |
| operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& 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 // - BOOST_NO_OVERLOAD_FOR_NON_CONST |
| |
| |
| } // namespace io |
| |
| } // namespace boost |
| |
| |
| #endif // BOOST_FORMAT_GROUP_HPP |