tuples.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 1,330 行 · 第 1/3 页
HPP
1,330 行
typedef G g_type; typedef H h_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h;};/////////////////////////////////////////////////////////////////////////////////// tuple <9 member> class/////////////////////////////////////////////////////////////////////////////////template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I>struct tuple<A, B, C, D, E, F, G, H, I,#if PHOENIX_LIMIT > 9 nil_t, nil_t, nil_t,#if PHOENIX_LIMIT > 12 nil_t, nil_t, nil_t,#endif#endif nil_t // Unused>: public tuple_base<tuple<A, B, C, D, E, F, G, H, I> > { BOOST_STATIC_CONSTANT(int, length = 9); typedef A a_type; typedef B b_type; typedef C c_type; typedef D d_type; typedef E e_type; typedef F f_type; typedef G g_type; typedef H h_type; typedef I i_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_, typename call_traits<I>::param_type i_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_), i(i_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]), i(init[tuple_index<8>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h; I i;};#if PHOENIX_LIMIT > 9/////////////////////////////////////////////////////////////////////////////////// tuple <10 member> class/////////////////////////////////////////////////////////////////////////////////template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J>struct tuple<A, B, C, D, E, F, G, H, I, J, nil_t, nil_t,#if PHOENIX_LIMIT > 12 nil_t, nil_t, nil_t,#endif nil_t // Unused>: public tuple_base<tuple<A, B, C, D, E, F, G, H, I, J> > { BOOST_STATIC_CONSTANT(int, length = 10); typedef A a_type; typedef B b_type; typedef C c_type; typedef D d_type; typedef E e_type; typedef F f_type; typedef G g_type; typedef H h_type; typedef I i_type; typedef J j_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_, typename call_traits<I>::param_type i_, typename call_traits<J>::param_type j_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_), i(i_), j(j_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]), i(init[tuple_index<8>()]), j(init[tuple_index<9>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h; I i; J j;};/////////////////////////////////////////////////////////////////////////////////// tuple <11 member> class/////////////////////////////////////////////////////////////////////////////////template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K>struct tuple<A, B, C, D, E, F, G, H, I, J, K, nil_t,#if PHOENIX_LIMIT > 12 nil_t, nil_t, nil_t,#endif nil_t // Unused>: public tuple_base<tuple<A, B, C, D, E, F, G, H, I, J, K> > { BOOST_STATIC_CONSTANT(int, length = 11); typedef A a_type; typedef B b_type; typedef C c_type; typedef D d_type; typedef E e_type; typedef F f_type; typedef G g_type; typedef H h_type; typedef I i_type; typedef J j_type; typedef K k_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_, typename call_traits<I>::param_type i_, typename call_traits<J>::param_type j_, typename call_traits<K>::param_type k_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_), i(i_), j(j_), k(k_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]), i(init[tuple_index<8>()]), j(init[tuple_index<9>()]), k(init[tuple_index<10>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h; I i; J j; K k;};/////////////////////////////////////////////////////////////////////////////////// tuple <12 member> class/////////////////////////////////////////////////////////////////////////////////template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L>struct tuple<A, B, C, D, E, F, G, H, I, J, K, L,#if PHOENIX_LIMIT > 12 nil_t, nil_t, nil_t,#endif nil_t // Unused>: public tuple_base<tuple<A, B, C, D, E, F, G, H, I, J, K, L> > { BOOST_STATIC_CONSTANT(int, length = 12); typedef A a_type; typedef B b_type; typedef C c_type; typedef D d_type; typedef E e_type; typedef F f_type; typedef G g_type; typedef H h_type; typedef I i_type; typedef J j_type; typedef K k_type; typedef L l_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_, typename call_traits<I>::param_type i_, typename call_traits<J>::param_type j_, typename call_traits<K>::param_type k_, typename call_traits<L>::param_type l_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_), i(i_), j(j_), k(k_), l(l_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]), i(init[tuple_index<8>()]), j(init[tuple_index<9>()]), k(init[tuple_index<10>()]), l(init[tuple_index<11>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h; I i; J j; K k; L l;};#if PHOENIX_LIMIT > 12/////////////////////////////////////////////////////////////////////////////////// tuple <13 member> class/////////////////////////////////////////////////////////////////////////////////template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L, typename M>struct tuple<A, B, C, D, E, F, G, H, I, J, K, L, M, nil_t, nil_t, nil_t>: public tuple_base< tuple<A, B, C, D, E, F, G, H, I, J, K, L, M> > { BOOST_STATIC_CONSTANT(int, length = 13); typedef A a_type; typedef B b_type; typedef C c_type; typedef D d_type; typedef E e_type; typedef F f_type; typedef G g_type; typedef H h_type; typedef I i_type; typedef J j_type; typedef K k_type; typedef L l_type; typedef M m_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_, typename call_traits<I>::param_type i_, typename call_traits<J>::param_type j_, typename call_traits<K>::param_type k_, typename call_traits<L>::param_type l_, typename call_traits<M>::param_type m_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_), i(i_), j(j_), k(k_), l(l_), m(m_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]), i(init[tuple_index<8>()]), j(init[tuple_index<9>()]), k(init[tuple_index<10>()]), l(init[tuple_index<11>()]), m(init[tuple_index<12>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h; I i; J j; K k; L l; M m;};/////////////////////////////////////////////////////////////////////////////////// tuple <14 member> class/////////////////////////////////////////////////////////////////////////////////template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L, typename M, typename N>struct tuple<A, B, C, D, E, F, G, H, I, J, K, L, M, N, nil_t, nil_t>: public tuple_base< tuple<A, B, C, D, E, F, G, H, I, J, K, L, M, N> > { BOOST_STATIC_CONSTANT(int, length = 14); typedef A a_type; typedef B b_type; typedef C c_type; typedef D d_type; typedef E e_type; typedef F f_type; typedef G g_type; typedef H h_type; typedef I i_type; typedef J j_type; typedef K k_type; typedef L l_type; typedef M m_type; typedef N n_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_, typename call_traits<I>::param_type i_, typename call_traits<J>::param_type j_, typename call_traits<K>::param_type k_, typename call_traits<L>::param_type l_, typename call_traits<M>::param_type m_, typename call_traits<N>::param_type n_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_), i(i_), j(j_), k(k_), l(l_), m(m_), n(n_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]), i(init[tuple_index<8>()]), j(init[tuple_index<9>()]), k(init[tuple_index<10>()]), l(init[tuple_index<11>()]), m(init[tuple_index<12>()]), n(init[tuple_index<13>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h; I i; J j; K k; L l; M m; N n;};/////////////////////////////////////////////////////////////////////////////////// tuple <15 member> class/////////////////////////////////////////////////////////////////////////////////template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L, typename M, typename N, typename O>struct tuple<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, nil_t>: public tuple_base< tuple<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> > { BOOST_STATIC_CONSTANT(int, length = 15); typedef A a_type; typedef B b_type; typedef C c_type; typedef D d_type; typedef E e_type; typedef F f_type; typedef G g_type; typedef H h_type; typedef I i_type; typedef J j_type; typedef K k_type; typedef L l_type; typedef M m_type; typedef N n_type; typedef O o_type; tuple() {} tuple( typename call_traits<A>::param_type a_, typename call_traits<B>::param_type b_, typename call_traits<C>::param_type c_, typename call_traits<D>::param_type d_, typename call_traits<E>::param_type e_, typename call_traits<F>::param_type f_, typename call_traits<G>::param_type g_, typename call_traits<H>::param_type h_, typename call_traits<I>::param_type i_, typename call_traits<J>::param_type j_, typename call_traits<K>::param_type k_, typename call_traits<L>::param_type l_, typename call_traits<M>::param_type m_, typename call_traits<N>::param_type n_, typename call_traits<O>::param_type o_ ): a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_), i(i_), j(j_), k(k_), l(l_), m(m_), n(n_), o(o_) {} template <typename TupleT> tuple(TupleT const& init) : a(init[tuple_index<0>()]), b(init[tuple_index<1>()]), c(init[tuple_index<2>()]), d(init[tuple_index<3>()]), e(init[tuple_index<4>()]), f(init[tuple_index<5>()]), g(init[tuple_index<6>()]), h(init[tuple_index<7>()]), i(init[tuple_index<8>()]), j(init[tuple_index<9>()]), k(init[tuple_index<10>()]), l(init[tuple_index<11>()]), m(init[tuple_index<12>()]), n(init[tuple_index<13>()]), o(init[tuple_index<14>()]) { BOOST_STATIC_ASSERT(TupleT::length == length); } A a; B b; C c; D d; E e; F f; G g; H h; I i; J j; K k; L l; M m; N n; O o;};#endif#endif#endif#endif///////////////////////////////////////////////////////////////////////////////} // namespace phoenix#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?