Imported Upstream version 1.57.0
[platform/upstream/boost.git] / boost / fusion / container / vector / detail / preprocessed / vvector10.hpp
1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3
4     Distributed under the Boost Software License, Version 1.0. (See accompanying
5     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7     This is an auto-generated file. Do not edit!
8 ==============================================================================*/
9 namespace boost { namespace fusion
10 {
11     struct void_;
12     struct fusion_sequence_tag;
13     template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
14     struct vector
15         : sequence_base<vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> >
16     {
17     private:
18         typedef typename detail::vector_n_chooser<
19             T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type
20         vector_n;
21         template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
22         friend struct vector;
23     public:
24         typedef typename vector_n::types types;
25         typedef typename vector_n::fusion_tag fusion_tag;
26         typedef typename vector_n::tag tag;
27         typedef typename vector_n::size size;
28         typedef typename vector_n::category category;
29         typedef typename vector_n::is_view is_view;
30         BOOST_FUSION_GPU_ENABLED
31         vector()
32             : vec() {}
33         template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
34         BOOST_FUSION_GPU_ENABLED
35         vector(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
36             : vec(rhs.vec) {}
37         BOOST_FUSION_GPU_ENABLED
38         vector(vector const& rhs)
39             : vec(rhs.vec) {}
40         template <typename Sequence>
41         BOOST_FUSION_GPU_ENABLED
42         vector(Sequence const& rhs)
43             : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
44         
45         
46         
47         
48         
49         
50         
51     BOOST_FUSION_GPU_ENABLED
52     explicit
53     vector(typename detail::call_param<T0 >::type _0)
54         : vec(_0) {}
55 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
56     template <typename U0>
57     BOOST_FUSION_GPU_ENABLED
58     explicit
59     vector(U0 && _0)
60         : vec(std::forward<U0>(_0)) {}
61 # endif
62     BOOST_FUSION_GPU_ENABLED
63     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
64         : vec(_0 , _1) {}
65 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
66     template <typename U0 , typename U1>
67     BOOST_FUSION_GPU_ENABLED
68     vector(U0 && _0 , U1 && _1)
69         : vec(std::forward<U0>(_0) , std::forward<U1>(_1)) {}
70 # endif
71     BOOST_FUSION_GPU_ENABLED
72     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
73         : vec(_0 , _1 , _2) {}
74 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
75     template <typename U0 , typename U1 , typename U2>
76     BOOST_FUSION_GPU_ENABLED
77     vector(U0 && _0 , U1 && _1 , U2 && _2)
78         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2)) {}
79 # endif
80     BOOST_FUSION_GPU_ENABLED
81     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
82         : vec(_0 , _1 , _2 , _3) {}
83 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
84     template <typename U0 , typename U1 , typename U2 , typename U3>
85     BOOST_FUSION_GPU_ENABLED
86     vector(U0 && _0 , U1 && _1 , U2 && _2 , U3 && _3)
87         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2) , std::forward<U3>(_3)) {}
88 # endif
89     BOOST_FUSION_GPU_ENABLED
90     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
91         : vec(_0 , _1 , _2 , _3 , _4) {}
92 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
93     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
94     BOOST_FUSION_GPU_ENABLED
95     vector(U0 && _0 , U1 && _1 , U2 && _2 , U3 && _3 , U4 && _4)
96         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2) , std::forward<U3>(_3) , std::forward<U4>(_4)) {}
97 # endif
98     BOOST_FUSION_GPU_ENABLED
99     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
100         : vec(_0 , _1 , _2 , _3 , _4 , _5) {}
101 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
102     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
103     BOOST_FUSION_GPU_ENABLED
104     vector(U0 && _0 , U1 && _1 , U2 && _2 , U3 && _3 , U4 && _4 , U5 && _5)
105         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2) , std::forward<U3>(_3) , std::forward<U4>(_4) , std::forward<U5>(_5)) {}
106 # endif
107     BOOST_FUSION_GPU_ENABLED
108     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
109         : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
110 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
111     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
112     BOOST_FUSION_GPU_ENABLED
113     vector(U0 && _0 , U1 && _1 , U2 && _2 , U3 && _3 , U4 && _4 , U5 && _5 , U6 && _6)
114         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2) , std::forward<U3>(_3) , std::forward<U4>(_4) , std::forward<U5>(_5) , std::forward<U6>(_6)) {}
115 # endif
116     BOOST_FUSION_GPU_ENABLED
117     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
118         : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
119 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
120     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
121     BOOST_FUSION_GPU_ENABLED
122     vector(U0 && _0 , U1 && _1 , U2 && _2 , U3 && _3 , U4 && _4 , U5 && _5 , U6 && _6 , U7 && _7)
123         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2) , std::forward<U3>(_3) , std::forward<U4>(_4) , std::forward<U5>(_5) , std::forward<U6>(_6) , std::forward<U7>(_7)) {}
124 # endif
125     BOOST_FUSION_GPU_ENABLED
126     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
127         : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
128 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
129     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
130     BOOST_FUSION_GPU_ENABLED
131     vector(U0 && _0 , U1 && _1 , U2 && _2 , U3 && _3 , U4 && _4 , U5 && _5 , U6 && _6 , U7 && _7 , U8 && _8)
132         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2) , std::forward<U3>(_3) , std::forward<U4>(_4) , std::forward<U5>(_5) , std::forward<U6>(_6) , std::forward<U7>(_7) , std::forward<U8>(_8)) {}
133 # endif
134     BOOST_FUSION_GPU_ENABLED
135     vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
136         : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
137 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
138     template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
139     BOOST_FUSION_GPU_ENABLED
140     vector(U0 && _0 , U1 && _1 , U2 && _2 , U3 && _3 , U4 && _4 , U5 && _5 , U6 && _6 , U7 && _7 , U8 && _8 , U9 && _9)
141         : vec(std::forward<U0>(_0) , std::forward<U1>(_1) , std::forward<U2>(_2) , std::forward<U3>(_3) , std::forward<U4>(_4) , std::forward<U5>(_5) , std::forward<U6>(_6) , std::forward<U7>(_7) , std::forward<U8>(_8) , std::forward<U9>(_9)) {}
142 # endif
143         template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
144         BOOST_FUSION_GPU_ENABLED
145         vector&
146         operator=(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
147         {
148             vec = rhs.vec;
149             return *this;
150         }
151         template <typename T>
152         BOOST_FUSION_GPU_ENABLED
153         vector&
154         operator=(T const& rhs)
155         {
156             vec = rhs;
157             return *this;
158         }
159         BOOST_FUSION_GPU_ENABLED
160         vector&
161         operator=(vector const& rhs)
162         {
163             vec = rhs.vec;
164             return *this;
165         }
166 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
167         BOOST_FUSION_GPU_ENABLED
168         vector(vector&& rhs)
169             : vec(std::forward<vector_n>(rhs.vec)) {}
170         BOOST_FUSION_GPU_ENABLED
171         vector&
172         operator=(vector&& rhs)
173         {
174             vec = std::forward<vector_n>(rhs.vec);
175             return *this;
176         }
177         template <typename T>
178         BOOST_FUSION_GPU_ENABLED
179         vector&
180         operator=(T&& rhs)
181         {
182             vec = std::forward<T>(rhs);
183             return *this;
184         }
185 # endif
186         template <int N>
187         BOOST_FUSION_GPU_ENABLED
188         typename add_reference<
189             typename mpl::at_c<types, N>::type
190         >::type
191         at_impl(mpl::int_<N> index)
192         {
193             return vec.at_impl(index);
194         }
195         template <int N>
196         BOOST_FUSION_GPU_ENABLED
197         typename add_reference<
198             typename add_const<
199                 typename mpl::at_c<types, N>::type
200             >::type
201         >::type
202         at_impl(mpl::int_<N> index) const
203         {
204             return vec.at_impl(index);
205         }
206         template <typename I>
207         BOOST_FUSION_GPU_ENABLED
208         typename add_reference<
209             typename mpl::at<types, I>::type
210         >::type
211         at_impl(I )
212         {
213             return vec.at_impl(mpl::int_<I::value>());
214         }
215         template<typename I>
216         BOOST_FUSION_GPU_ENABLED
217         typename add_reference<
218             typename add_const<
219                 typename mpl::at<types, I>::type
220             >::type
221         >::type
222         at_impl(I ) const
223         {
224             return vec.at_impl(mpl::int_<I::value>());
225         }
226     private:
227         BOOST_FUSION_VECTOR_CTOR_HELPER()
228         vector_n vec;
229     };
230 }}