Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:34:50

0001 /*=============================================================================
0002     Copyright (c) 2001-2011 Joel de Guzman
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 
0007     This is an auto-generated file. Do not edit!
0008 ==============================================================================*/
0009 namespace boost { namespace fusion
0010 {
0011     template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
0012     struct tuple : vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>
0013     {
0014         typedef vector<
0015             T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>
0016         base_type;
0017         BOOST_FUSION_GPU_ENABLED tuple()
0018             : base_type() {}
0019         BOOST_FUSION_GPU_ENABLED tuple(tuple const& rhs)
0020             : base_type(static_cast<base_type const&>(rhs)) {}
0021         template <typename U1, typename U2>
0022         BOOST_FUSION_GPU_ENABLED
0023         tuple(std::pair<U1, U2> const& rhs)
0024             : base_type(rhs) {}
0025     BOOST_FUSION_GPU_ENABLED
0026     explicit
0027     tuple(typename detail::call_param<T0 >::type arg0)
0028         : base_type(arg0) {}
0029     template <typename U0>
0030     BOOST_FUSION_GPU_ENABLED
0031     tuple(tuple<U0> const& rhs)
0032         : base_type(rhs) {}
0033     template <typename U0>
0034     BOOST_FUSION_GPU_ENABLED
0035     tuple& operator=(tuple<U0> const& rhs)
0036     {
0037         base_type::operator=(rhs);
0038         return *this;
0039     }
0040     BOOST_FUSION_GPU_ENABLED
0041     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1)
0042         : base_type(arg0 , arg1) {}
0043     template <typename U0 , typename U1>
0044     BOOST_FUSION_GPU_ENABLED
0045     tuple(tuple<U0 , U1> const& rhs)
0046         : base_type(rhs) {}
0047     template <typename U0 , typename U1>
0048     BOOST_FUSION_GPU_ENABLED
0049     tuple& operator=(tuple<U0 , U1> const& rhs)
0050     {
0051         base_type::operator=(rhs);
0052         return *this;
0053     }
0054     BOOST_FUSION_GPU_ENABLED
0055     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2)
0056         : base_type(arg0 , arg1 , arg2) {}
0057     template <typename U0 , typename U1 , typename U2>
0058     BOOST_FUSION_GPU_ENABLED
0059     tuple(tuple<U0 , U1 , U2> const& rhs)
0060         : base_type(rhs) {}
0061     template <typename U0 , typename U1 , typename U2>
0062     BOOST_FUSION_GPU_ENABLED
0063     tuple& operator=(tuple<U0 , U1 , U2> const& rhs)
0064     {
0065         base_type::operator=(rhs);
0066         return *this;
0067     }
0068     BOOST_FUSION_GPU_ENABLED
0069     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3)
0070         : base_type(arg0 , arg1 , arg2 , arg3) {}
0071     template <typename U0 , typename U1 , typename U2 , typename U3>
0072     BOOST_FUSION_GPU_ENABLED
0073     tuple(tuple<U0 , U1 , U2 , U3> const& rhs)
0074         : base_type(rhs) {}
0075     template <typename U0 , typename U1 , typename U2 , typename U3>
0076     BOOST_FUSION_GPU_ENABLED
0077     tuple& operator=(tuple<U0 , U1 , U2 , U3> const& rhs)
0078     {
0079         base_type::operator=(rhs);
0080         return *this;
0081     }
0082     BOOST_FUSION_GPU_ENABLED
0083     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4)
0084         : base_type(arg0 , arg1 , arg2 , arg3 , arg4) {}
0085     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
0086     BOOST_FUSION_GPU_ENABLED
0087     tuple(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
0088         : base_type(rhs) {}
0089     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
0090     BOOST_FUSION_GPU_ENABLED
0091     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
0092     {
0093         base_type::operator=(rhs);
0094         return *this;
0095     }
0096     BOOST_FUSION_GPU_ENABLED
0097     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5)
0098         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5) {}
0099     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
0100     BOOST_FUSION_GPU_ENABLED
0101     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
0102         : base_type(rhs) {}
0103     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
0104     BOOST_FUSION_GPU_ENABLED
0105     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
0106     {
0107         base_type::operator=(rhs);
0108         return *this;
0109     }
0110     BOOST_FUSION_GPU_ENABLED
0111     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6)
0112         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6) {}
0113     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
0114     BOOST_FUSION_GPU_ENABLED
0115     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
0116         : base_type(rhs) {}
0117     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
0118     BOOST_FUSION_GPU_ENABLED
0119     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
0120     {
0121         base_type::operator=(rhs);
0122         return *this;
0123     }
0124     BOOST_FUSION_GPU_ENABLED
0125     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7)
0126         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7) {}
0127     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
0128     BOOST_FUSION_GPU_ENABLED
0129     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
0130         : base_type(rhs) {}
0131     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
0132     BOOST_FUSION_GPU_ENABLED
0133     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
0134     {
0135         base_type::operator=(rhs);
0136         return *this;
0137     }
0138     BOOST_FUSION_GPU_ENABLED
0139     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8)
0140         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8) {}
0141     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
0142     BOOST_FUSION_GPU_ENABLED
0143     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
0144         : base_type(rhs) {}
0145     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
0146     BOOST_FUSION_GPU_ENABLED
0147     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
0148     {
0149         base_type::operator=(rhs);
0150         return *this;
0151     }
0152     BOOST_FUSION_GPU_ENABLED
0153     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9)
0154         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9) {}
0155     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
0156     BOOST_FUSION_GPU_ENABLED
0157     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
0158         : base_type(rhs) {}
0159     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
0160     BOOST_FUSION_GPU_ENABLED
0161     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
0162     {
0163         base_type::operator=(rhs);
0164         return *this;
0165     }
0166     BOOST_FUSION_GPU_ENABLED
0167     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10)
0168         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10) {}
0169     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
0170     BOOST_FUSION_GPU_ENABLED
0171     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
0172         : base_type(rhs) {}
0173     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
0174     BOOST_FUSION_GPU_ENABLED
0175     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
0176     {
0177         base_type::operator=(rhs);
0178         return *this;
0179     }
0180     BOOST_FUSION_GPU_ENABLED
0181     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11)
0182         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11) {}
0183     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
0184     BOOST_FUSION_GPU_ENABLED
0185     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
0186         : base_type(rhs) {}
0187     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
0188     BOOST_FUSION_GPU_ENABLED
0189     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
0190     {
0191         base_type::operator=(rhs);
0192         return *this;
0193     }
0194     BOOST_FUSION_GPU_ENABLED
0195     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12)
0196         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12) {}
0197     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
0198     BOOST_FUSION_GPU_ENABLED
0199     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
0200         : base_type(rhs) {}
0201     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
0202     BOOST_FUSION_GPU_ENABLED
0203     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
0204     {
0205         base_type::operator=(rhs);
0206         return *this;
0207     }
0208     BOOST_FUSION_GPU_ENABLED
0209     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12 , typename detail::call_param<T13 >::type arg13)
0210         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13) {}
0211     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
0212     BOOST_FUSION_GPU_ENABLED
0213     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
0214         : base_type(rhs) {}
0215     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
0216     BOOST_FUSION_GPU_ENABLED
0217     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
0218     {
0219         base_type::operator=(rhs);
0220         return *this;
0221     }
0222     BOOST_FUSION_GPU_ENABLED
0223     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12 , typename detail::call_param<T13 >::type arg13 , typename detail::call_param<T14 >::type arg14)
0224         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14) {}
0225     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
0226     BOOST_FUSION_GPU_ENABLED
0227     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
0228         : base_type(rhs) {}
0229     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
0230     BOOST_FUSION_GPU_ENABLED
0231     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
0232     {
0233         base_type::operator=(rhs);
0234         return *this;
0235     }
0236     BOOST_FUSION_GPU_ENABLED
0237     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12 , typename detail::call_param<T13 >::type arg13 , typename detail::call_param<T14 >::type arg14 , typename detail::call_param<T15 >::type arg15)
0238         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15) {}
0239     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
0240     BOOST_FUSION_GPU_ENABLED
0241     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
0242         : base_type(rhs) {}
0243     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
0244     BOOST_FUSION_GPU_ENABLED
0245     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
0246     {
0247         base_type::operator=(rhs);
0248         return *this;
0249     }
0250     BOOST_FUSION_GPU_ENABLED
0251     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12 , typename detail::call_param<T13 >::type arg13 , typename detail::call_param<T14 >::type arg14 , typename detail::call_param<T15 >::type arg15 , typename detail::call_param<T16 >::type arg16)
0252         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16) {}
0253     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
0254     BOOST_FUSION_GPU_ENABLED
0255     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
0256         : base_type(rhs) {}
0257     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
0258     BOOST_FUSION_GPU_ENABLED
0259     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
0260     {
0261         base_type::operator=(rhs);
0262         return *this;
0263     }
0264     BOOST_FUSION_GPU_ENABLED
0265     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12 , typename detail::call_param<T13 >::type arg13 , typename detail::call_param<T14 >::type arg14 , typename detail::call_param<T15 >::type arg15 , typename detail::call_param<T16 >::type arg16 , typename detail::call_param<T17 >::type arg17)
0266         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17) {}
0267     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
0268     BOOST_FUSION_GPU_ENABLED
0269     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
0270         : base_type(rhs) {}
0271     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
0272     BOOST_FUSION_GPU_ENABLED
0273     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
0274     {
0275         base_type::operator=(rhs);
0276         return *this;
0277     }
0278     BOOST_FUSION_GPU_ENABLED
0279     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12 , typename detail::call_param<T13 >::type arg13 , typename detail::call_param<T14 >::type arg14 , typename detail::call_param<T15 >::type arg15 , typename detail::call_param<T16 >::type arg16 , typename detail::call_param<T17 >::type arg17 , typename detail::call_param<T18 >::type arg18)
0280         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18) {}
0281     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
0282     BOOST_FUSION_GPU_ENABLED
0283     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
0284         : base_type(rhs) {}
0285     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
0286     BOOST_FUSION_GPU_ENABLED
0287     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
0288     {
0289         base_type::operator=(rhs);
0290         return *this;
0291     }
0292     BOOST_FUSION_GPU_ENABLED
0293     tuple(typename detail::call_param<T0 >::type arg0 , typename detail::call_param<T1 >::type arg1 , typename detail::call_param<T2 >::type arg2 , typename detail::call_param<T3 >::type arg3 , typename detail::call_param<T4 >::type arg4 , typename detail::call_param<T5 >::type arg5 , typename detail::call_param<T6 >::type arg6 , typename detail::call_param<T7 >::type arg7 , typename detail::call_param<T8 >::type arg8 , typename detail::call_param<T9 >::type arg9 , typename detail::call_param<T10 >::type arg10 , typename detail::call_param<T11 >::type arg11 , typename detail::call_param<T12 >::type arg12 , typename detail::call_param<T13 >::type arg13 , typename detail::call_param<T14 >::type arg14 , typename detail::call_param<T15 >::type arg15 , typename detail::call_param<T16 >::type arg16 , typename detail::call_param<T17 >::type arg17 , typename detail::call_param<T18 >::type arg18 , typename detail::call_param<T19 >::type arg19)
0294         : base_type(arg0 , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 , arg17 , arg18 , arg19) {}
0295     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
0296     BOOST_FUSION_GPU_ENABLED
0297     tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
0298         : base_type(rhs) {}
0299     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
0300     BOOST_FUSION_GPU_ENABLED
0301     tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
0302     {
0303         base_type::operator=(rhs);
0304         return *this;
0305     }
0306         template <typename T>
0307         BOOST_FUSION_GPU_ENABLED
0308         tuple& operator=(T const& rhs)
0309         {
0310             base_type::operator=(rhs);
0311             return *this;
0312         }
0313         BOOST_FUSION_GPU_ENABLED
0314         tuple& operator=(tuple const& rhs)
0315         {
0316             base_type::operator=(static_cast<base_type const&>(rhs));
0317             return *this;
0318         }
0319         template <typename U1, typename U2>
0320         BOOST_FUSION_GPU_ENABLED
0321         tuple& operator=(std::pair<U1, U2> const& rhs)
0322         {
0323             base_type::operator=(rhs);
0324             return *this;
0325         }
0326     };
0327     template <typename Tuple>
0328     struct tuple_size : result_of::size<Tuple> {};
0329     template <int N, typename Tuple>
0330     struct tuple_element : result_of::value_at_c<Tuple, N> {};
0331     template <int N, typename Tuple>
0332     BOOST_FUSION_GPU_ENABLED
0333     inline typename
0334         lazy_disable_if<
0335             is_const<Tuple>
0336           , result_of::at_c<Tuple, N>
0337         >::type
0338     get(Tuple& tup)
0339     {
0340         return at_c<N>(tup);
0341     }
0342     template <int N, typename Tuple>
0343     BOOST_FUSION_GPU_ENABLED
0344     inline typename result_of::at_c<Tuple const, N>::type
0345     get(Tuple const& tup)
0346     {
0347         return at_c<N>(tup);
0348     }
0349 }}