📄 group.hpp
字号:
// ----------------------------------------------------------------------------// 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>inlineBOOST_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) {}};template <class Ch, class Tr, class T1>inlineBOOST_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) {}};template <class Ch, class Tr, class T1,class T2>inlineBOOST_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) {}};template <class Ch, class Tr, class T1,class T2,class T3>inlineBOOST_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) {}};template <class Ch, class Tr, class T1,class T2,class T3,class T4>inlineBOOST_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>inlineBOOST_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>inlineBOOST_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>inlineBOOST_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>inlineBOOST_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>inlineBOOST_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>inlineBOOST_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>inlinegroup1<T1> group_head( group2<T1,T2> const& x){ return group1<T1> (x.a1_); }template <class T1,class T2>inlinegroup1<T2> group_last( group2<T1,T2> const& x){ return group1<T2> (x.a2_); }template <class T1,class T2,class T3>inlinegroup2<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>inlinegroup1<T3> group_last( group3<T1,T2,T3> const& x){ return group1<T3> (x.a3_); }template <class T1,class T2,class T3,class T4>inlinegroup3<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>inlinegroup1<T4> group_last( group4<T1,T2,T3,T4> const& x)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -