Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: hello_message_pack
cpp03_msgpack_tuple.hpp
00001 // 00002 // MessagePack for C++ static resolution routine 00003 // 00004 // Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi 00005 // 00006 // Distributed under the Boost Software License, Version 1.0. 00007 // (See accompanying file LICENSE_1_0.txt or copy at 00008 // http://www.boost.org/LICENSE_1_0.txt) 00009 // 00010 #ifndef MSGPACK_CPP03_MSGPACK_TUPLE_HPP 00011 #define MSGPACK_CPP03_MSGPACK_TUPLE_HPP 00012 00013 #include "msgpack/versioning.hpp" 00014 #include "msgpack/object.hpp" 00015 #include "msgpack/adaptor/adaptor_base.hpp" 00016 00017 namespace msgpack { 00018 00019 /// @cond 00020 MSGPACK_API_VERSION_NAMESPACE(v1) { 00021 /// @endcond 00022 00023 namespace type { 00024 00025 // FIXME operator== 00026 // FIXME operator!= 00027 00028 00029 /// @cond 00030 template <typename A0 = void, typename A1 = void, typename A2 = void, typename A3 = void, typename A4 = void, typename A5 = void, typename A6 = void, typename A7 = void, typename A8 = void, typename A9 = void, typename A10 = void, typename A11 = void, typename A12 = void, typename A13 = void, typename A14 = void, typename A15 = void, typename A16 = void, typename A17 = void, typename A18 = void, typename A19 = void, typename A20 = void, typename A21 = void, typename A22 = void, typename A23 = void, typename A24 = void, typename A25 = void, typename A26 = void, typename A27 = void, typename A28 = void, typename A29 = void, typename A30 = void, typename A31 = void, typename A32 = void> 00031 struct tuple; 00032 /// @endcond 00033 00034 template <typename Tuple, int N> 00035 struct tuple_element; 00036 00037 template <typename Tuple, int N> 00038 struct const_tuple_element; 00039 00040 template <typename T> 00041 struct tuple_type { 00042 typedef T type; 00043 typedef T value_type; 00044 typedef T& reference; 00045 typedef const T& const_reference; 00046 typedef const T& transparent_reference; 00047 }; 00048 00049 template <typename T> 00050 struct tuple_type<T&> { 00051 typedef T type; 00052 typedef T& value_type; 00053 typedef T& reference; 00054 typedef const T& const_reference; 00055 typedef T& transparent_reference; 00056 }; 00057 00058 template <typename T> 00059 struct tuple_type<const T&> { 00060 typedef T type; 00061 typedef T& value_type; 00062 typedef T& reference; 00063 typedef const T& const_reference; 00064 typedef const T& transparent_reference; 00065 }; 00066 00067 /// @cond 00068 00069 00070 template <typename A0> 00071 struct tuple_element<tuple<A0>, 0> : tuple_type<A0> { 00072 tuple_element(tuple<A0>& x) : m_x(x.a0) {} 00073 typename tuple_type<A0>::reference get() { return m_x; } 00074 typename tuple_type<A0>::const_reference get() const { return m_x; } 00075 private: 00076 typename tuple_type<A0>::reference m_x; 00077 }; 00078 00079 00080 00081 template <typename A0, typename A1> 00082 struct tuple_element<tuple<A0, A1>, 0> : tuple_type<A0> { 00083 tuple_element(tuple<A0, A1 >& x) : m_x(x.a0) {} 00084 typename tuple_type<A0>::reference get() { return m_x; } 00085 typename tuple_type<A0>::const_reference get() const { return m_x; } 00086 private: 00087 typename tuple_type<A0>::reference m_x; 00088 }; 00089 00090 template <typename A0, typename A1> 00091 struct tuple_element<tuple<A0, A1>, 1> : tuple_type<A1> { 00092 tuple_element(tuple<A0, A1 >& x) : m_x(x.a1) {} 00093 typename tuple_type<A1>::reference get() { return m_x; } 00094 typename tuple_type<A1>::const_reference get() const { return m_x; } 00095 private: 00096 typename tuple_type<A1>::reference m_x; 00097 }; 00098 00099 00100 00101 template <typename A0, typename A1, typename A2> 00102 struct tuple_element<tuple<A0, A1, A2>, 0> : tuple_type<A0> { 00103 tuple_element(tuple<A0, A1 , A2 >& x) : m_x(x.a0) {} 00104 typename tuple_type<A0>::reference get() { return m_x; } 00105 typename tuple_type<A0>::const_reference get() const { return m_x; } 00106 private: 00107 typename tuple_type<A0>::reference m_x; 00108 }; 00109 00110 template <typename A0, typename A1, typename A2> 00111 struct tuple_element<tuple<A0, A1, A2>, 1> : tuple_type<A1> { 00112 tuple_element(tuple<A0, A1 , A2 >& x) : m_x(x.a1) {} 00113 typename tuple_type<A1>::reference get() { return m_x; } 00114 typename tuple_type<A1>::const_reference get() const { return m_x; } 00115 private: 00116 typename tuple_type<A1>::reference m_x; 00117 }; 00118 00119 template <typename A0, typename A1, typename A2> 00120 struct tuple_element<tuple<A0, A1, A2>, 2> : tuple_type<A2> { 00121 tuple_element(tuple<A0, A1 , A2 >& x) : m_x(x.a2) {} 00122 typename tuple_type<A2>::reference get() { return m_x; } 00123 typename tuple_type<A2>::const_reference get() const { return m_x; } 00124 private: 00125 typename tuple_type<A2>::reference m_x; 00126 }; 00127 00128 00129 00130 template <typename A0, typename A1, typename A2, typename A3> 00131 struct tuple_element<tuple<A0, A1, A2, A3>, 0> : tuple_type<A0> { 00132 tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a0) {} 00133 typename tuple_type<A0>::reference get() { return m_x; } 00134 typename tuple_type<A0>::const_reference get() const { return m_x; } 00135 private: 00136 typename tuple_type<A0>::reference m_x; 00137 }; 00138 00139 template <typename A0, typename A1, typename A2, typename A3> 00140 struct tuple_element<tuple<A0, A1, A2, A3>, 1> : tuple_type<A1> { 00141 tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a1) {} 00142 typename tuple_type<A1>::reference get() { return m_x; } 00143 typename tuple_type<A1>::const_reference get() const { return m_x; } 00144 private: 00145 typename tuple_type<A1>::reference m_x; 00146 }; 00147 00148 template <typename A0, typename A1, typename A2, typename A3> 00149 struct tuple_element<tuple<A0, A1, A2, A3>, 2> : tuple_type<A2> { 00150 tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a2) {} 00151 typename tuple_type<A2>::reference get() { return m_x; } 00152 typename tuple_type<A2>::const_reference get() const { return m_x; } 00153 private: 00154 typename tuple_type<A2>::reference m_x; 00155 }; 00156 00157 template <typename A0, typename A1, typename A2, typename A3> 00158 struct tuple_element<tuple<A0, A1, A2, A3>, 3> : tuple_type<A3> { 00159 tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a3) {} 00160 typename tuple_type<A3>::reference get() { return m_x; } 00161 typename tuple_type<A3>::const_reference get() const { return m_x; } 00162 private: 00163 typename tuple_type<A3>::reference m_x; 00164 }; 00165 00166 00167 00168 template <typename A0, typename A1, typename A2, typename A3, typename A4> 00169 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 0> : tuple_type<A0> { 00170 tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a0) {} 00171 typename tuple_type<A0>::reference get() { return m_x; } 00172 typename tuple_type<A0>::const_reference get() const { return m_x; } 00173 private: 00174 typename tuple_type<A0>::reference m_x; 00175 }; 00176 00177 template <typename A0, typename A1, typename A2, typename A3, typename A4> 00178 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 1> : tuple_type<A1> { 00179 tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a1) {} 00180 typename tuple_type<A1>::reference get() { return m_x; } 00181 typename tuple_type<A1>::const_reference get() const { return m_x; } 00182 private: 00183 typename tuple_type<A1>::reference m_x; 00184 }; 00185 00186 template <typename A0, typename A1, typename A2, typename A3, typename A4> 00187 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 2> : tuple_type<A2> { 00188 tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a2) {} 00189 typename tuple_type<A2>::reference get() { return m_x; } 00190 typename tuple_type<A2>::const_reference get() const { return m_x; } 00191 private: 00192 typename tuple_type<A2>::reference m_x; 00193 }; 00194 00195 template <typename A0, typename A1, typename A2, typename A3, typename A4> 00196 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 3> : tuple_type<A3> { 00197 tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a3) {} 00198 typename tuple_type<A3>::reference get() { return m_x; } 00199 typename tuple_type<A3>::const_reference get() const { return m_x; } 00200 private: 00201 typename tuple_type<A3>::reference m_x; 00202 }; 00203 00204 template <typename A0, typename A1, typename A2, typename A3, typename A4> 00205 struct tuple_element<tuple<A0, A1, A2, A3, A4>, 4> : tuple_type<A4> { 00206 tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a4) {} 00207 typename tuple_type<A4>::reference get() { return m_x; } 00208 typename tuple_type<A4>::const_reference get() const { return m_x; } 00209 private: 00210 typename tuple_type<A4>::reference m_x; 00211 }; 00212 00213 00214 00215 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 00216 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 0> : tuple_type<A0> { 00217 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a0) {} 00218 typename tuple_type<A0>::reference get() { return m_x; } 00219 typename tuple_type<A0>::const_reference get() const { return m_x; } 00220 private: 00221 typename tuple_type<A0>::reference m_x; 00222 }; 00223 00224 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 00225 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 1> : tuple_type<A1> { 00226 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a1) {} 00227 typename tuple_type<A1>::reference get() { return m_x; } 00228 typename tuple_type<A1>::const_reference get() const { return m_x; } 00229 private: 00230 typename tuple_type<A1>::reference m_x; 00231 }; 00232 00233 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 00234 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 2> : tuple_type<A2> { 00235 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a2) {} 00236 typename tuple_type<A2>::reference get() { return m_x; } 00237 typename tuple_type<A2>::const_reference get() const { return m_x; } 00238 private: 00239 typename tuple_type<A2>::reference m_x; 00240 }; 00241 00242 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 00243 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 3> : tuple_type<A3> { 00244 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a3) {} 00245 typename tuple_type<A3>::reference get() { return m_x; } 00246 typename tuple_type<A3>::const_reference get() const { return m_x; } 00247 private: 00248 typename tuple_type<A3>::reference m_x; 00249 }; 00250 00251 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 00252 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 4> : tuple_type<A4> { 00253 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a4) {} 00254 typename tuple_type<A4>::reference get() { return m_x; } 00255 typename tuple_type<A4>::const_reference get() const { return m_x; } 00256 private: 00257 typename tuple_type<A4>::reference m_x; 00258 }; 00259 00260 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 00261 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 5> : tuple_type<A5> { 00262 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a5) {} 00263 typename tuple_type<A5>::reference get() { return m_x; } 00264 typename tuple_type<A5>::const_reference get() const { return m_x; } 00265 private: 00266 typename tuple_type<A5>::reference m_x; 00267 }; 00268 00269 00270 00271 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 00272 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 0> : tuple_type<A0> { 00273 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a0) {} 00274 typename tuple_type<A0>::reference get() { return m_x; } 00275 typename tuple_type<A0>::const_reference get() const { return m_x; } 00276 private: 00277 typename tuple_type<A0>::reference m_x; 00278 }; 00279 00280 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 00281 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 1> : tuple_type<A1> { 00282 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a1) {} 00283 typename tuple_type<A1>::reference get() { return m_x; } 00284 typename tuple_type<A1>::const_reference get() const { return m_x; } 00285 private: 00286 typename tuple_type<A1>::reference m_x; 00287 }; 00288 00289 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 00290 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 2> : tuple_type<A2> { 00291 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a2) {} 00292 typename tuple_type<A2>::reference get() { return m_x; } 00293 typename tuple_type<A2>::const_reference get() const { return m_x; } 00294 private: 00295 typename tuple_type<A2>::reference m_x; 00296 }; 00297 00298 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 00299 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 3> : tuple_type<A3> { 00300 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a3) {} 00301 typename tuple_type<A3>::reference get() { return m_x; } 00302 typename tuple_type<A3>::const_reference get() const { return m_x; } 00303 private: 00304 typename tuple_type<A3>::reference m_x; 00305 }; 00306 00307 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 00308 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 4> : tuple_type<A4> { 00309 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a4) {} 00310 typename tuple_type<A4>::reference get() { return m_x; } 00311 typename tuple_type<A4>::const_reference get() const { return m_x; } 00312 private: 00313 typename tuple_type<A4>::reference m_x; 00314 }; 00315 00316 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 00317 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 5> : tuple_type<A5> { 00318 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a5) {} 00319 typename tuple_type<A5>::reference get() { return m_x; } 00320 typename tuple_type<A5>::const_reference get() const { return m_x; } 00321 private: 00322 typename tuple_type<A5>::reference m_x; 00323 }; 00324 00325 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 00326 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 6> : tuple_type<A6> { 00327 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a6) {} 00328 typename tuple_type<A6>::reference get() { return m_x; } 00329 typename tuple_type<A6>::const_reference get() const { return m_x; } 00330 private: 00331 typename tuple_type<A6>::reference m_x; 00332 }; 00333 00334 00335 00336 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00337 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 0> : tuple_type<A0> { 00338 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a0) {} 00339 typename tuple_type<A0>::reference get() { return m_x; } 00340 typename tuple_type<A0>::const_reference get() const { return m_x; } 00341 private: 00342 typename tuple_type<A0>::reference m_x; 00343 }; 00344 00345 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00346 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 1> : tuple_type<A1> { 00347 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a1) {} 00348 typename tuple_type<A1>::reference get() { return m_x; } 00349 typename tuple_type<A1>::const_reference get() const { return m_x; } 00350 private: 00351 typename tuple_type<A1>::reference m_x; 00352 }; 00353 00354 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00355 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 2> : tuple_type<A2> { 00356 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a2) {} 00357 typename tuple_type<A2>::reference get() { return m_x; } 00358 typename tuple_type<A2>::const_reference get() const { return m_x; } 00359 private: 00360 typename tuple_type<A2>::reference m_x; 00361 }; 00362 00363 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00364 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 3> : tuple_type<A3> { 00365 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a3) {} 00366 typename tuple_type<A3>::reference get() { return m_x; } 00367 typename tuple_type<A3>::const_reference get() const { return m_x; } 00368 private: 00369 typename tuple_type<A3>::reference m_x; 00370 }; 00371 00372 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00373 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 4> : tuple_type<A4> { 00374 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a4) {} 00375 typename tuple_type<A4>::reference get() { return m_x; } 00376 typename tuple_type<A4>::const_reference get() const { return m_x; } 00377 private: 00378 typename tuple_type<A4>::reference m_x; 00379 }; 00380 00381 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00382 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 5> : tuple_type<A5> { 00383 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a5) {} 00384 typename tuple_type<A5>::reference get() { return m_x; } 00385 typename tuple_type<A5>::const_reference get() const { return m_x; } 00386 private: 00387 typename tuple_type<A5>::reference m_x; 00388 }; 00389 00390 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00391 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 6> : tuple_type<A6> { 00392 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a6) {} 00393 typename tuple_type<A6>::reference get() { return m_x; } 00394 typename tuple_type<A6>::const_reference get() const { return m_x; } 00395 private: 00396 typename tuple_type<A6>::reference m_x; 00397 }; 00398 00399 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 00400 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 7> : tuple_type<A7> { 00401 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a7) {} 00402 typename tuple_type<A7>::reference get() { return m_x; } 00403 typename tuple_type<A7>::const_reference get() const { return m_x; } 00404 private: 00405 typename tuple_type<A7>::reference m_x; 00406 }; 00407 00408 00409 00410 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00411 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 0> : tuple_type<A0> { 00412 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a0) {} 00413 typename tuple_type<A0>::reference get() { return m_x; } 00414 typename tuple_type<A0>::const_reference get() const { return m_x; } 00415 private: 00416 typename tuple_type<A0>::reference m_x; 00417 }; 00418 00419 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00420 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 1> : tuple_type<A1> { 00421 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a1) {} 00422 typename tuple_type<A1>::reference get() { return m_x; } 00423 typename tuple_type<A1>::const_reference get() const { return m_x; } 00424 private: 00425 typename tuple_type<A1>::reference m_x; 00426 }; 00427 00428 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00429 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 2> : tuple_type<A2> { 00430 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a2) {} 00431 typename tuple_type<A2>::reference get() { return m_x; } 00432 typename tuple_type<A2>::const_reference get() const { return m_x; } 00433 private: 00434 typename tuple_type<A2>::reference m_x; 00435 }; 00436 00437 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00438 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 3> : tuple_type<A3> { 00439 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a3) {} 00440 typename tuple_type<A3>::reference get() { return m_x; } 00441 typename tuple_type<A3>::const_reference get() const { return m_x; } 00442 private: 00443 typename tuple_type<A3>::reference m_x; 00444 }; 00445 00446 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00447 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 4> : tuple_type<A4> { 00448 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a4) {} 00449 typename tuple_type<A4>::reference get() { return m_x; } 00450 typename tuple_type<A4>::const_reference get() const { return m_x; } 00451 private: 00452 typename tuple_type<A4>::reference m_x; 00453 }; 00454 00455 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00456 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 5> : tuple_type<A5> { 00457 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a5) {} 00458 typename tuple_type<A5>::reference get() { return m_x; } 00459 typename tuple_type<A5>::const_reference get() const { return m_x; } 00460 private: 00461 typename tuple_type<A5>::reference m_x; 00462 }; 00463 00464 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00465 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 6> : tuple_type<A6> { 00466 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a6) {} 00467 typename tuple_type<A6>::reference get() { return m_x; } 00468 typename tuple_type<A6>::const_reference get() const { return m_x; } 00469 private: 00470 typename tuple_type<A6>::reference m_x; 00471 }; 00472 00473 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00474 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 7> : tuple_type<A7> { 00475 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a7) {} 00476 typename tuple_type<A7>::reference get() { return m_x; } 00477 typename tuple_type<A7>::const_reference get() const { return m_x; } 00478 private: 00479 typename tuple_type<A7>::reference m_x; 00480 }; 00481 00482 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 00483 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 8> : tuple_type<A8> { 00484 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a8) {} 00485 typename tuple_type<A8>::reference get() { return m_x; } 00486 typename tuple_type<A8>::const_reference get() const { return m_x; } 00487 private: 00488 typename tuple_type<A8>::reference m_x; 00489 }; 00490 00491 00492 00493 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00494 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 0> : tuple_type<A0> { 00495 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a0) {} 00496 typename tuple_type<A0>::reference get() { return m_x; } 00497 typename tuple_type<A0>::const_reference get() const { return m_x; } 00498 private: 00499 typename tuple_type<A0>::reference m_x; 00500 }; 00501 00502 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00503 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 1> : tuple_type<A1> { 00504 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a1) {} 00505 typename tuple_type<A1>::reference get() { return m_x; } 00506 typename tuple_type<A1>::const_reference get() const { return m_x; } 00507 private: 00508 typename tuple_type<A1>::reference m_x; 00509 }; 00510 00511 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00512 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 2> : tuple_type<A2> { 00513 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a2) {} 00514 typename tuple_type<A2>::reference get() { return m_x; } 00515 typename tuple_type<A2>::const_reference get() const { return m_x; } 00516 private: 00517 typename tuple_type<A2>::reference m_x; 00518 }; 00519 00520 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00521 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 3> : tuple_type<A3> { 00522 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a3) {} 00523 typename tuple_type<A3>::reference get() { return m_x; } 00524 typename tuple_type<A3>::const_reference get() const { return m_x; } 00525 private: 00526 typename tuple_type<A3>::reference m_x; 00527 }; 00528 00529 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00530 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 4> : tuple_type<A4> { 00531 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a4) {} 00532 typename tuple_type<A4>::reference get() { return m_x; } 00533 typename tuple_type<A4>::const_reference get() const { return m_x; } 00534 private: 00535 typename tuple_type<A4>::reference m_x; 00536 }; 00537 00538 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00539 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 5> : tuple_type<A5> { 00540 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a5) {} 00541 typename tuple_type<A5>::reference get() { return m_x; } 00542 typename tuple_type<A5>::const_reference get() const { return m_x; } 00543 private: 00544 typename tuple_type<A5>::reference m_x; 00545 }; 00546 00547 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00548 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 6> : tuple_type<A6> { 00549 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a6) {} 00550 typename tuple_type<A6>::reference get() { return m_x; } 00551 typename tuple_type<A6>::const_reference get() const { return m_x; } 00552 private: 00553 typename tuple_type<A6>::reference m_x; 00554 }; 00555 00556 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00557 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 7> : tuple_type<A7> { 00558 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a7) {} 00559 typename tuple_type<A7>::reference get() { return m_x; } 00560 typename tuple_type<A7>::const_reference get() const { return m_x; } 00561 private: 00562 typename tuple_type<A7>::reference m_x; 00563 }; 00564 00565 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00566 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 8> : tuple_type<A8> { 00567 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a8) {} 00568 typename tuple_type<A8>::reference get() { return m_x; } 00569 typename tuple_type<A8>::const_reference get() const { return m_x; } 00570 private: 00571 typename tuple_type<A8>::reference m_x; 00572 }; 00573 00574 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 00575 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 9> : tuple_type<A9> { 00576 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a9) {} 00577 typename tuple_type<A9>::reference get() { return m_x; } 00578 typename tuple_type<A9>::const_reference get() const { return m_x; } 00579 private: 00580 typename tuple_type<A9>::reference m_x; 00581 }; 00582 00583 00584 00585 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00586 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 0> : tuple_type<A0> { 00587 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a0) {} 00588 typename tuple_type<A0>::reference get() { return m_x; } 00589 typename tuple_type<A0>::const_reference get() const { return m_x; } 00590 private: 00591 typename tuple_type<A0>::reference m_x; 00592 }; 00593 00594 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00595 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 1> : tuple_type<A1> { 00596 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a1) {} 00597 typename tuple_type<A1>::reference get() { return m_x; } 00598 typename tuple_type<A1>::const_reference get() const { return m_x; } 00599 private: 00600 typename tuple_type<A1>::reference m_x; 00601 }; 00602 00603 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00604 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 2> : tuple_type<A2> { 00605 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a2) {} 00606 typename tuple_type<A2>::reference get() { return m_x; } 00607 typename tuple_type<A2>::const_reference get() const { return m_x; } 00608 private: 00609 typename tuple_type<A2>::reference m_x; 00610 }; 00611 00612 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00613 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 3> : tuple_type<A3> { 00614 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a3) {} 00615 typename tuple_type<A3>::reference get() { return m_x; } 00616 typename tuple_type<A3>::const_reference get() const { return m_x; } 00617 private: 00618 typename tuple_type<A3>::reference m_x; 00619 }; 00620 00621 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00622 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 4> : tuple_type<A4> { 00623 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a4) {} 00624 typename tuple_type<A4>::reference get() { return m_x; } 00625 typename tuple_type<A4>::const_reference get() const { return m_x; } 00626 private: 00627 typename tuple_type<A4>::reference m_x; 00628 }; 00629 00630 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00631 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 5> : tuple_type<A5> { 00632 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a5) {} 00633 typename tuple_type<A5>::reference get() { return m_x; } 00634 typename tuple_type<A5>::const_reference get() const { return m_x; } 00635 private: 00636 typename tuple_type<A5>::reference m_x; 00637 }; 00638 00639 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00640 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 6> : tuple_type<A6> { 00641 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a6) {} 00642 typename tuple_type<A6>::reference get() { return m_x; } 00643 typename tuple_type<A6>::const_reference get() const { return m_x; } 00644 private: 00645 typename tuple_type<A6>::reference m_x; 00646 }; 00647 00648 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00649 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 7> : tuple_type<A7> { 00650 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a7) {} 00651 typename tuple_type<A7>::reference get() { return m_x; } 00652 typename tuple_type<A7>::const_reference get() const { return m_x; } 00653 private: 00654 typename tuple_type<A7>::reference m_x; 00655 }; 00656 00657 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00658 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 8> : tuple_type<A8> { 00659 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a8) {} 00660 typename tuple_type<A8>::reference get() { return m_x; } 00661 typename tuple_type<A8>::const_reference get() const { return m_x; } 00662 private: 00663 typename tuple_type<A8>::reference m_x; 00664 }; 00665 00666 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00667 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 9> : tuple_type<A9> { 00668 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a9) {} 00669 typename tuple_type<A9>::reference get() { return m_x; } 00670 typename tuple_type<A9>::const_reference get() const { return m_x; } 00671 private: 00672 typename tuple_type<A9>::reference m_x; 00673 }; 00674 00675 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 00676 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 10> : tuple_type<A10> { 00677 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a10) {} 00678 typename tuple_type<A10>::reference get() { return m_x; } 00679 typename tuple_type<A10>::const_reference get() const { return m_x; } 00680 private: 00681 typename tuple_type<A10>::reference m_x; 00682 }; 00683 00684 00685 00686 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00687 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 0> : tuple_type<A0> { 00688 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a0) {} 00689 typename tuple_type<A0>::reference get() { return m_x; } 00690 typename tuple_type<A0>::const_reference get() const { return m_x; } 00691 private: 00692 typename tuple_type<A0>::reference m_x; 00693 }; 00694 00695 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00696 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 1> : tuple_type<A1> { 00697 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a1) {} 00698 typename tuple_type<A1>::reference get() { return m_x; } 00699 typename tuple_type<A1>::const_reference get() const { return m_x; } 00700 private: 00701 typename tuple_type<A1>::reference m_x; 00702 }; 00703 00704 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00705 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 2> : tuple_type<A2> { 00706 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a2) {} 00707 typename tuple_type<A2>::reference get() { return m_x; } 00708 typename tuple_type<A2>::const_reference get() const { return m_x; } 00709 private: 00710 typename tuple_type<A2>::reference m_x; 00711 }; 00712 00713 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00714 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 3> : tuple_type<A3> { 00715 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a3) {} 00716 typename tuple_type<A3>::reference get() { return m_x; } 00717 typename tuple_type<A3>::const_reference get() const { return m_x; } 00718 private: 00719 typename tuple_type<A3>::reference m_x; 00720 }; 00721 00722 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00723 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 4> : tuple_type<A4> { 00724 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a4) {} 00725 typename tuple_type<A4>::reference get() { return m_x; } 00726 typename tuple_type<A4>::const_reference get() const { return m_x; } 00727 private: 00728 typename tuple_type<A4>::reference m_x; 00729 }; 00730 00731 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00732 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 5> : tuple_type<A5> { 00733 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a5) {} 00734 typename tuple_type<A5>::reference get() { return m_x; } 00735 typename tuple_type<A5>::const_reference get() const { return m_x; } 00736 private: 00737 typename tuple_type<A5>::reference m_x; 00738 }; 00739 00740 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00741 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 6> : tuple_type<A6> { 00742 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a6) {} 00743 typename tuple_type<A6>::reference get() { return m_x; } 00744 typename tuple_type<A6>::const_reference get() const { return m_x; } 00745 private: 00746 typename tuple_type<A6>::reference m_x; 00747 }; 00748 00749 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00750 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 7> : tuple_type<A7> { 00751 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a7) {} 00752 typename tuple_type<A7>::reference get() { return m_x; } 00753 typename tuple_type<A7>::const_reference get() const { return m_x; } 00754 private: 00755 typename tuple_type<A7>::reference m_x; 00756 }; 00757 00758 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00759 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 8> : tuple_type<A8> { 00760 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a8) {} 00761 typename tuple_type<A8>::reference get() { return m_x; } 00762 typename tuple_type<A8>::const_reference get() const { return m_x; } 00763 private: 00764 typename tuple_type<A8>::reference m_x; 00765 }; 00766 00767 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00768 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 9> : tuple_type<A9> { 00769 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a9) {} 00770 typename tuple_type<A9>::reference get() { return m_x; } 00771 typename tuple_type<A9>::const_reference get() const { return m_x; } 00772 private: 00773 typename tuple_type<A9>::reference m_x; 00774 }; 00775 00776 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00777 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 10> : tuple_type<A10> { 00778 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a10) {} 00779 typename tuple_type<A10>::reference get() { return m_x; } 00780 typename tuple_type<A10>::const_reference get() const { return m_x; } 00781 private: 00782 typename tuple_type<A10>::reference m_x; 00783 }; 00784 00785 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 00786 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 11> : tuple_type<A11> { 00787 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a11) {} 00788 typename tuple_type<A11>::reference get() { return m_x; } 00789 typename tuple_type<A11>::const_reference get() const { return m_x; } 00790 private: 00791 typename tuple_type<A11>::reference m_x; 00792 }; 00793 00794 00795 00796 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00797 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 0> : tuple_type<A0> { 00798 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a0) {} 00799 typename tuple_type<A0>::reference get() { return m_x; } 00800 typename tuple_type<A0>::const_reference get() const { return m_x; } 00801 private: 00802 typename tuple_type<A0>::reference m_x; 00803 }; 00804 00805 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00806 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 1> : tuple_type<A1> { 00807 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a1) {} 00808 typename tuple_type<A1>::reference get() { return m_x; } 00809 typename tuple_type<A1>::const_reference get() const { return m_x; } 00810 private: 00811 typename tuple_type<A1>::reference m_x; 00812 }; 00813 00814 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00815 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 2> : tuple_type<A2> { 00816 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a2) {} 00817 typename tuple_type<A2>::reference get() { return m_x; } 00818 typename tuple_type<A2>::const_reference get() const { return m_x; } 00819 private: 00820 typename tuple_type<A2>::reference m_x; 00821 }; 00822 00823 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00824 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 3> : tuple_type<A3> { 00825 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a3) {} 00826 typename tuple_type<A3>::reference get() { return m_x; } 00827 typename tuple_type<A3>::const_reference get() const { return m_x; } 00828 private: 00829 typename tuple_type<A3>::reference m_x; 00830 }; 00831 00832 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00833 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 4> : tuple_type<A4> { 00834 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a4) {} 00835 typename tuple_type<A4>::reference get() { return m_x; } 00836 typename tuple_type<A4>::const_reference get() const { return m_x; } 00837 private: 00838 typename tuple_type<A4>::reference m_x; 00839 }; 00840 00841 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00842 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 5> : tuple_type<A5> { 00843 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a5) {} 00844 typename tuple_type<A5>::reference get() { return m_x; } 00845 typename tuple_type<A5>::const_reference get() const { return m_x; } 00846 private: 00847 typename tuple_type<A5>::reference m_x; 00848 }; 00849 00850 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00851 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 6> : tuple_type<A6> { 00852 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a6) {} 00853 typename tuple_type<A6>::reference get() { return m_x; } 00854 typename tuple_type<A6>::const_reference get() const { return m_x; } 00855 private: 00856 typename tuple_type<A6>::reference m_x; 00857 }; 00858 00859 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00860 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 7> : tuple_type<A7> { 00861 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a7) {} 00862 typename tuple_type<A7>::reference get() { return m_x; } 00863 typename tuple_type<A7>::const_reference get() const { return m_x; } 00864 private: 00865 typename tuple_type<A7>::reference m_x; 00866 }; 00867 00868 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00869 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 8> : tuple_type<A8> { 00870 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a8) {} 00871 typename tuple_type<A8>::reference get() { return m_x; } 00872 typename tuple_type<A8>::const_reference get() const { return m_x; } 00873 private: 00874 typename tuple_type<A8>::reference m_x; 00875 }; 00876 00877 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00878 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 9> : tuple_type<A9> { 00879 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a9) {} 00880 typename tuple_type<A9>::reference get() { return m_x; } 00881 typename tuple_type<A9>::const_reference get() const { return m_x; } 00882 private: 00883 typename tuple_type<A9>::reference m_x; 00884 }; 00885 00886 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00887 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 10> : tuple_type<A10> { 00888 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a10) {} 00889 typename tuple_type<A10>::reference get() { return m_x; } 00890 typename tuple_type<A10>::const_reference get() const { return m_x; } 00891 private: 00892 typename tuple_type<A10>::reference m_x; 00893 }; 00894 00895 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00896 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 11> : tuple_type<A11> { 00897 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a11) {} 00898 typename tuple_type<A11>::reference get() { return m_x; } 00899 typename tuple_type<A11>::const_reference get() const { return m_x; } 00900 private: 00901 typename tuple_type<A11>::reference m_x; 00902 }; 00903 00904 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 00905 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 12> : tuple_type<A12> { 00906 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a12) {} 00907 typename tuple_type<A12>::reference get() { return m_x; } 00908 typename tuple_type<A12>::const_reference get() const { return m_x; } 00909 private: 00910 typename tuple_type<A12>::reference m_x; 00911 }; 00912 00913 00914 00915 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00916 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 0> : tuple_type<A0> { 00917 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a0) {} 00918 typename tuple_type<A0>::reference get() { return m_x; } 00919 typename tuple_type<A0>::const_reference get() const { return m_x; } 00920 private: 00921 typename tuple_type<A0>::reference m_x; 00922 }; 00923 00924 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00925 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 1> : tuple_type<A1> { 00926 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a1) {} 00927 typename tuple_type<A1>::reference get() { return m_x; } 00928 typename tuple_type<A1>::const_reference get() const { return m_x; } 00929 private: 00930 typename tuple_type<A1>::reference m_x; 00931 }; 00932 00933 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00934 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 2> : tuple_type<A2> { 00935 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a2) {} 00936 typename tuple_type<A2>::reference get() { return m_x; } 00937 typename tuple_type<A2>::const_reference get() const { return m_x; } 00938 private: 00939 typename tuple_type<A2>::reference m_x; 00940 }; 00941 00942 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00943 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 3> : tuple_type<A3> { 00944 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a3) {} 00945 typename tuple_type<A3>::reference get() { return m_x; } 00946 typename tuple_type<A3>::const_reference get() const { return m_x; } 00947 private: 00948 typename tuple_type<A3>::reference m_x; 00949 }; 00950 00951 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00952 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 4> : tuple_type<A4> { 00953 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a4) {} 00954 typename tuple_type<A4>::reference get() { return m_x; } 00955 typename tuple_type<A4>::const_reference get() const { return m_x; } 00956 private: 00957 typename tuple_type<A4>::reference m_x; 00958 }; 00959 00960 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00961 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 5> : tuple_type<A5> { 00962 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a5) {} 00963 typename tuple_type<A5>::reference get() { return m_x; } 00964 typename tuple_type<A5>::const_reference get() const { return m_x; } 00965 private: 00966 typename tuple_type<A5>::reference m_x; 00967 }; 00968 00969 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00970 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 6> : tuple_type<A6> { 00971 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a6) {} 00972 typename tuple_type<A6>::reference get() { return m_x; } 00973 typename tuple_type<A6>::const_reference get() const { return m_x; } 00974 private: 00975 typename tuple_type<A6>::reference m_x; 00976 }; 00977 00978 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00979 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 7> : tuple_type<A7> { 00980 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a7) {} 00981 typename tuple_type<A7>::reference get() { return m_x; } 00982 typename tuple_type<A7>::const_reference get() const { return m_x; } 00983 private: 00984 typename tuple_type<A7>::reference m_x; 00985 }; 00986 00987 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00988 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 8> : tuple_type<A8> { 00989 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a8) {} 00990 typename tuple_type<A8>::reference get() { return m_x; } 00991 typename tuple_type<A8>::const_reference get() const { return m_x; } 00992 private: 00993 typename tuple_type<A8>::reference m_x; 00994 }; 00995 00996 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 00997 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 9> : tuple_type<A9> { 00998 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a9) {} 00999 typename tuple_type<A9>::reference get() { return m_x; } 01000 typename tuple_type<A9>::const_reference get() const { return m_x; } 01001 private: 01002 typename tuple_type<A9>::reference m_x; 01003 }; 01004 01005 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 01006 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 10> : tuple_type<A10> { 01007 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a10) {} 01008 typename tuple_type<A10>::reference get() { return m_x; } 01009 typename tuple_type<A10>::const_reference get() const { return m_x; } 01010 private: 01011 typename tuple_type<A10>::reference m_x; 01012 }; 01013 01014 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 01015 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 11> : tuple_type<A11> { 01016 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a11) {} 01017 typename tuple_type<A11>::reference get() { return m_x; } 01018 typename tuple_type<A11>::const_reference get() const { return m_x; } 01019 private: 01020 typename tuple_type<A11>::reference m_x; 01021 }; 01022 01023 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 01024 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 12> : tuple_type<A12> { 01025 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a12) {} 01026 typename tuple_type<A12>::reference get() { return m_x; } 01027 typename tuple_type<A12>::const_reference get() const { return m_x; } 01028 private: 01029 typename tuple_type<A12>::reference m_x; 01030 }; 01031 01032 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 01033 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 13> : tuple_type<A13> { 01034 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a13) {} 01035 typename tuple_type<A13>::reference get() { return m_x; } 01036 typename tuple_type<A13>::const_reference get() const { return m_x; } 01037 private: 01038 typename tuple_type<A13>::reference m_x; 01039 }; 01040 01041 01042 01043 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01044 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 0> : tuple_type<A0> { 01045 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a0) {} 01046 typename tuple_type<A0>::reference get() { return m_x; } 01047 typename tuple_type<A0>::const_reference get() const { return m_x; } 01048 private: 01049 typename tuple_type<A0>::reference m_x; 01050 }; 01051 01052 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01053 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 1> : tuple_type<A1> { 01054 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a1) {} 01055 typename tuple_type<A1>::reference get() { return m_x; } 01056 typename tuple_type<A1>::const_reference get() const { return m_x; } 01057 private: 01058 typename tuple_type<A1>::reference m_x; 01059 }; 01060 01061 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01062 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 2> : tuple_type<A2> { 01063 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a2) {} 01064 typename tuple_type<A2>::reference get() { return m_x; } 01065 typename tuple_type<A2>::const_reference get() const { return m_x; } 01066 private: 01067 typename tuple_type<A2>::reference m_x; 01068 }; 01069 01070 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01071 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 3> : tuple_type<A3> { 01072 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a3) {} 01073 typename tuple_type<A3>::reference get() { return m_x; } 01074 typename tuple_type<A3>::const_reference get() const { return m_x; } 01075 private: 01076 typename tuple_type<A3>::reference m_x; 01077 }; 01078 01079 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01080 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 4> : tuple_type<A4> { 01081 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a4) {} 01082 typename tuple_type<A4>::reference get() { return m_x; } 01083 typename tuple_type<A4>::const_reference get() const { return m_x; } 01084 private: 01085 typename tuple_type<A4>::reference m_x; 01086 }; 01087 01088 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01089 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 5> : tuple_type<A5> { 01090 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a5) {} 01091 typename tuple_type<A5>::reference get() { return m_x; } 01092 typename tuple_type<A5>::const_reference get() const { return m_x; } 01093 private: 01094 typename tuple_type<A5>::reference m_x; 01095 }; 01096 01097 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01098 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 6> : tuple_type<A6> { 01099 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a6) {} 01100 typename tuple_type<A6>::reference get() { return m_x; } 01101 typename tuple_type<A6>::const_reference get() const { return m_x; } 01102 private: 01103 typename tuple_type<A6>::reference m_x; 01104 }; 01105 01106 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01107 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 7> : tuple_type<A7> { 01108 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a7) {} 01109 typename tuple_type<A7>::reference get() { return m_x; } 01110 typename tuple_type<A7>::const_reference get() const { return m_x; } 01111 private: 01112 typename tuple_type<A7>::reference m_x; 01113 }; 01114 01115 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01116 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 8> : tuple_type<A8> { 01117 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a8) {} 01118 typename tuple_type<A8>::reference get() { return m_x; } 01119 typename tuple_type<A8>::const_reference get() const { return m_x; } 01120 private: 01121 typename tuple_type<A8>::reference m_x; 01122 }; 01123 01124 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01125 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 9> : tuple_type<A9> { 01126 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a9) {} 01127 typename tuple_type<A9>::reference get() { return m_x; } 01128 typename tuple_type<A9>::const_reference get() const { return m_x; } 01129 private: 01130 typename tuple_type<A9>::reference m_x; 01131 }; 01132 01133 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01134 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 10> : tuple_type<A10> { 01135 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a10) {} 01136 typename tuple_type<A10>::reference get() { return m_x; } 01137 typename tuple_type<A10>::const_reference get() const { return m_x; } 01138 private: 01139 typename tuple_type<A10>::reference m_x; 01140 }; 01141 01142 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01143 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 11> : tuple_type<A11> { 01144 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a11) {} 01145 typename tuple_type<A11>::reference get() { return m_x; } 01146 typename tuple_type<A11>::const_reference get() const { return m_x; } 01147 private: 01148 typename tuple_type<A11>::reference m_x; 01149 }; 01150 01151 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01152 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 12> : tuple_type<A12> { 01153 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a12) {} 01154 typename tuple_type<A12>::reference get() { return m_x; } 01155 typename tuple_type<A12>::const_reference get() const { return m_x; } 01156 private: 01157 typename tuple_type<A12>::reference m_x; 01158 }; 01159 01160 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01161 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 13> : tuple_type<A13> { 01162 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a13) {} 01163 typename tuple_type<A13>::reference get() { return m_x; } 01164 typename tuple_type<A13>::const_reference get() const { return m_x; } 01165 private: 01166 typename tuple_type<A13>::reference m_x; 01167 }; 01168 01169 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 01170 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 14> : tuple_type<A14> { 01171 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a14) {} 01172 typename tuple_type<A14>::reference get() { return m_x; } 01173 typename tuple_type<A14>::const_reference get() const { return m_x; } 01174 private: 01175 typename tuple_type<A14>::reference m_x; 01176 }; 01177 01178 01179 01180 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01181 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 0> : tuple_type<A0> { 01182 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a0) {} 01183 typename tuple_type<A0>::reference get() { return m_x; } 01184 typename tuple_type<A0>::const_reference get() const { return m_x; } 01185 private: 01186 typename tuple_type<A0>::reference m_x; 01187 }; 01188 01189 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01190 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 1> : tuple_type<A1> { 01191 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a1) {} 01192 typename tuple_type<A1>::reference get() { return m_x; } 01193 typename tuple_type<A1>::const_reference get() const { return m_x; } 01194 private: 01195 typename tuple_type<A1>::reference m_x; 01196 }; 01197 01198 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01199 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 2> : tuple_type<A2> { 01200 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a2) {} 01201 typename tuple_type<A2>::reference get() { return m_x; } 01202 typename tuple_type<A2>::const_reference get() const { return m_x; } 01203 private: 01204 typename tuple_type<A2>::reference m_x; 01205 }; 01206 01207 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01208 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 3> : tuple_type<A3> { 01209 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a3) {} 01210 typename tuple_type<A3>::reference get() { return m_x; } 01211 typename tuple_type<A3>::const_reference get() const { return m_x; } 01212 private: 01213 typename tuple_type<A3>::reference m_x; 01214 }; 01215 01216 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01217 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 4> : tuple_type<A4> { 01218 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a4) {} 01219 typename tuple_type<A4>::reference get() { return m_x; } 01220 typename tuple_type<A4>::const_reference get() const { return m_x; } 01221 private: 01222 typename tuple_type<A4>::reference m_x; 01223 }; 01224 01225 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01226 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 5> : tuple_type<A5> { 01227 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a5) {} 01228 typename tuple_type<A5>::reference get() { return m_x; } 01229 typename tuple_type<A5>::const_reference get() const { return m_x; } 01230 private: 01231 typename tuple_type<A5>::reference m_x; 01232 }; 01233 01234 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01235 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 6> : tuple_type<A6> { 01236 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a6) {} 01237 typename tuple_type<A6>::reference get() { return m_x; } 01238 typename tuple_type<A6>::const_reference get() const { return m_x; } 01239 private: 01240 typename tuple_type<A6>::reference m_x; 01241 }; 01242 01243 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01244 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 7> : tuple_type<A7> { 01245 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a7) {} 01246 typename tuple_type<A7>::reference get() { return m_x; } 01247 typename tuple_type<A7>::const_reference get() const { return m_x; } 01248 private: 01249 typename tuple_type<A7>::reference m_x; 01250 }; 01251 01252 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01253 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 8> : tuple_type<A8> { 01254 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a8) {} 01255 typename tuple_type<A8>::reference get() { return m_x; } 01256 typename tuple_type<A8>::const_reference get() const { return m_x; } 01257 private: 01258 typename tuple_type<A8>::reference m_x; 01259 }; 01260 01261 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01262 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 9> : tuple_type<A9> { 01263 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a9) {} 01264 typename tuple_type<A9>::reference get() { return m_x; } 01265 typename tuple_type<A9>::const_reference get() const { return m_x; } 01266 private: 01267 typename tuple_type<A9>::reference m_x; 01268 }; 01269 01270 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01271 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 10> : tuple_type<A10> { 01272 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a10) {} 01273 typename tuple_type<A10>::reference get() { return m_x; } 01274 typename tuple_type<A10>::const_reference get() const { return m_x; } 01275 private: 01276 typename tuple_type<A10>::reference m_x; 01277 }; 01278 01279 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01280 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 11> : tuple_type<A11> { 01281 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a11) {} 01282 typename tuple_type<A11>::reference get() { return m_x; } 01283 typename tuple_type<A11>::const_reference get() const { return m_x; } 01284 private: 01285 typename tuple_type<A11>::reference m_x; 01286 }; 01287 01288 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01289 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 12> : tuple_type<A12> { 01290 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a12) {} 01291 typename tuple_type<A12>::reference get() { return m_x; } 01292 typename tuple_type<A12>::const_reference get() const { return m_x; } 01293 private: 01294 typename tuple_type<A12>::reference m_x; 01295 }; 01296 01297 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01298 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 13> : tuple_type<A13> { 01299 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a13) {} 01300 typename tuple_type<A13>::reference get() { return m_x; } 01301 typename tuple_type<A13>::const_reference get() const { return m_x; } 01302 private: 01303 typename tuple_type<A13>::reference m_x; 01304 }; 01305 01306 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01307 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 14> : tuple_type<A14> { 01308 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a14) {} 01309 typename tuple_type<A14>::reference get() { return m_x; } 01310 typename tuple_type<A14>::const_reference get() const { return m_x; } 01311 private: 01312 typename tuple_type<A14>::reference m_x; 01313 }; 01314 01315 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 01316 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 15> : tuple_type<A15> { 01317 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a15) {} 01318 typename tuple_type<A15>::reference get() { return m_x; } 01319 typename tuple_type<A15>::const_reference get() const { return m_x; } 01320 private: 01321 typename tuple_type<A15>::reference m_x; 01322 }; 01323 01324 01325 01326 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01327 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 0> : tuple_type<A0> { 01328 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a0) {} 01329 typename tuple_type<A0>::reference get() { return m_x; } 01330 typename tuple_type<A0>::const_reference get() const { return m_x; } 01331 private: 01332 typename tuple_type<A0>::reference m_x; 01333 }; 01334 01335 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01336 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 1> : tuple_type<A1> { 01337 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a1) {} 01338 typename tuple_type<A1>::reference get() { return m_x; } 01339 typename tuple_type<A1>::const_reference get() const { return m_x; } 01340 private: 01341 typename tuple_type<A1>::reference m_x; 01342 }; 01343 01344 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01345 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 2> : tuple_type<A2> { 01346 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a2) {} 01347 typename tuple_type<A2>::reference get() { return m_x; } 01348 typename tuple_type<A2>::const_reference get() const { return m_x; } 01349 private: 01350 typename tuple_type<A2>::reference m_x; 01351 }; 01352 01353 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01354 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 3> : tuple_type<A3> { 01355 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a3) {} 01356 typename tuple_type<A3>::reference get() { return m_x; } 01357 typename tuple_type<A3>::const_reference get() const { return m_x; } 01358 private: 01359 typename tuple_type<A3>::reference m_x; 01360 }; 01361 01362 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01363 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 4> : tuple_type<A4> { 01364 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a4) {} 01365 typename tuple_type<A4>::reference get() { return m_x; } 01366 typename tuple_type<A4>::const_reference get() const { return m_x; } 01367 private: 01368 typename tuple_type<A4>::reference m_x; 01369 }; 01370 01371 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01372 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 5> : tuple_type<A5> { 01373 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a5) {} 01374 typename tuple_type<A5>::reference get() { return m_x; } 01375 typename tuple_type<A5>::const_reference get() const { return m_x; } 01376 private: 01377 typename tuple_type<A5>::reference m_x; 01378 }; 01379 01380 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01381 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 6> : tuple_type<A6> { 01382 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a6) {} 01383 typename tuple_type<A6>::reference get() { return m_x; } 01384 typename tuple_type<A6>::const_reference get() const { return m_x; } 01385 private: 01386 typename tuple_type<A6>::reference m_x; 01387 }; 01388 01389 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01390 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 7> : tuple_type<A7> { 01391 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a7) {} 01392 typename tuple_type<A7>::reference get() { return m_x; } 01393 typename tuple_type<A7>::const_reference get() const { return m_x; } 01394 private: 01395 typename tuple_type<A7>::reference m_x; 01396 }; 01397 01398 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01399 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 8> : tuple_type<A8> { 01400 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a8) {} 01401 typename tuple_type<A8>::reference get() { return m_x; } 01402 typename tuple_type<A8>::const_reference get() const { return m_x; } 01403 private: 01404 typename tuple_type<A8>::reference m_x; 01405 }; 01406 01407 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01408 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 9> : tuple_type<A9> { 01409 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a9) {} 01410 typename tuple_type<A9>::reference get() { return m_x; } 01411 typename tuple_type<A9>::const_reference get() const { return m_x; } 01412 private: 01413 typename tuple_type<A9>::reference m_x; 01414 }; 01415 01416 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01417 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 10> : tuple_type<A10> { 01418 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a10) {} 01419 typename tuple_type<A10>::reference get() { return m_x; } 01420 typename tuple_type<A10>::const_reference get() const { return m_x; } 01421 private: 01422 typename tuple_type<A10>::reference m_x; 01423 }; 01424 01425 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01426 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 11> : tuple_type<A11> { 01427 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a11) {} 01428 typename tuple_type<A11>::reference get() { return m_x; } 01429 typename tuple_type<A11>::const_reference get() const { return m_x; } 01430 private: 01431 typename tuple_type<A11>::reference m_x; 01432 }; 01433 01434 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01435 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 12> : tuple_type<A12> { 01436 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a12) {} 01437 typename tuple_type<A12>::reference get() { return m_x; } 01438 typename tuple_type<A12>::const_reference get() const { return m_x; } 01439 private: 01440 typename tuple_type<A12>::reference m_x; 01441 }; 01442 01443 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01444 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 13> : tuple_type<A13> { 01445 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a13) {} 01446 typename tuple_type<A13>::reference get() { return m_x; } 01447 typename tuple_type<A13>::const_reference get() const { return m_x; } 01448 private: 01449 typename tuple_type<A13>::reference m_x; 01450 }; 01451 01452 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01453 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 14> : tuple_type<A14> { 01454 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a14) {} 01455 typename tuple_type<A14>::reference get() { return m_x; } 01456 typename tuple_type<A14>::const_reference get() const { return m_x; } 01457 private: 01458 typename tuple_type<A14>::reference m_x; 01459 }; 01460 01461 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01462 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 15> : tuple_type<A15> { 01463 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a15) {} 01464 typename tuple_type<A15>::reference get() { return m_x; } 01465 typename tuple_type<A15>::const_reference get() const { return m_x; } 01466 private: 01467 typename tuple_type<A15>::reference m_x; 01468 }; 01469 01470 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 01471 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 16> : tuple_type<A16> { 01472 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a16) {} 01473 typename tuple_type<A16>::reference get() { return m_x; } 01474 typename tuple_type<A16>::const_reference get() const { return m_x; } 01475 private: 01476 typename tuple_type<A16>::reference m_x; 01477 }; 01478 01479 01480 01481 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01482 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 0> : tuple_type<A0> { 01483 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a0) {} 01484 typename tuple_type<A0>::reference get() { return m_x; } 01485 typename tuple_type<A0>::const_reference get() const { return m_x; } 01486 private: 01487 typename tuple_type<A0>::reference m_x; 01488 }; 01489 01490 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01491 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 1> : tuple_type<A1> { 01492 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a1) {} 01493 typename tuple_type<A1>::reference get() { return m_x; } 01494 typename tuple_type<A1>::const_reference get() const { return m_x; } 01495 private: 01496 typename tuple_type<A1>::reference m_x; 01497 }; 01498 01499 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01500 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 2> : tuple_type<A2> { 01501 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a2) {} 01502 typename tuple_type<A2>::reference get() { return m_x; } 01503 typename tuple_type<A2>::const_reference get() const { return m_x; } 01504 private: 01505 typename tuple_type<A2>::reference m_x; 01506 }; 01507 01508 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01509 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 3> : tuple_type<A3> { 01510 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a3) {} 01511 typename tuple_type<A3>::reference get() { return m_x; } 01512 typename tuple_type<A3>::const_reference get() const { return m_x; } 01513 private: 01514 typename tuple_type<A3>::reference m_x; 01515 }; 01516 01517 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01518 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 4> : tuple_type<A4> { 01519 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a4) {} 01520 typename tuple_type<A4>::reference get() { return m_x; } 01521 typename tuple_type<A4>::const_reference get() const { return m_x; } 01522 private: 01523 typename tuple_type<A4>::reference m_x; 01524 }; 01525 01526 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01527 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 5> : tuple_type<A5> { 01528 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a5) {} 01529 typename tuple_type<A5>::reference get() { return m_x; } 01530 typename tuple_type<A5>::const_reference get() const { return m_x; } 01531 private: 01532 typename tuple_type<A5>::reference m_x; 01533 }; 01534 01535 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01536 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 6> : tuple_type<A6> { 01537 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a6) {} 01538 typename tuple_type<A6>::reference get() { return m_x; } 01539 typename tuple_type<A6>::const_reference get() const { return m_x; } 01540 private: 01541 typename tuple_type<A6>::reference m_x; 01542 }; 01543 01544 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01545 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 7> : tuple_type<A7> { 01546 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a7) {} 01547 typename tuple_type<A7>::reference get() { return m_x; } 01548 typename tuple_type<A7>::const_reference get() const { return m_x; } 01549 private: 01550 typename tuple_type<A7>::reference m_x; 01551 }; 01552 01553 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01554 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 8> : tuple_type<A8> { 01555 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a8) {} 01556 typename tuple_type<A8>::reference get() { return m_x; } 01557 typename tuple_type<A8>::const_reference get() const { return m_x; } 01558 private: 01559 typename tuple_type<A8>::reference m_x; 01560 }; 01561 01562 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01563 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 9> : tuple_type<A9> { 01564 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a9) {} 01565 typename tuple_type<A9>::reference get() { return m_x; } 01566 typename tuple_type<A9>::const_reference get() const { return m_x; } 01567 private: 01568 typename tuple_type<A9>::reference m_x; 01569 }; 01570 01571 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01572 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 10> : tuple_type<A10> { 01573 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a10) {} 01574 typename tuple_type<A10>::reference get() { return m_x; } 01575 typename tuple_type<A10>::const_reference get() const { return m_x; } 01576 private: 01577 typename tuple_type<A10>::reference m_x; 01578 }; 01579 01580 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01581 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 11> : tuple_type<A11> { 01582 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a11) {} 01583 typename tuple_type<A11>::reference get() { return m_x; } 01584 typename tuple_type<A11>::const_reference get() const { return m_x; } 01585 private: 01586 typename tuple_type<A11>::reference m_x; 01587 }; 01588 01589 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01590 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 12> : tuple_type<A12> { 01591 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a12) {} 01592 typename tuple_type<A12>::reference get() { return m_x; } 01593 typename tuple_type<A12>::const_reference get() const { return m_x; } 01594 private: 01595 typename tuple_type<A12>::reference m_x; 01596 }; 01597 01598 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01599 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 13> : tuple_type<A13> { 01600 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a13) {} 01601 typename tuple_type<A13>::reference get() { return m_x; } 01602 typename tuple_type<A13>::const_reference get() const { return m_x; } 01603 private: 01604 typename tuple_type<A13>::reference m_x; 01605 }; 01606 01607 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01608 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 14> : tuple_type<A14> { 01609 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a14) {} 01610 typename tuple_type<A14>::reference get() { return m_x; } 01611 typename tuple_type<A14>::const_reference get() const { return m_x; } 01612 private: 01613 typename tuple_type<A14>::reference m_x; 01614 }; 01615 01616 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01617 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 15> : tuple_type<A15> { 01618 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a15) {} 01619 typename tuple_type<A15>::reference get() { return m_x; } 01620 typename tuple_type<A15>::const_reference get() const { return m_x; } 01621 private: 01622 typename tuple_type<A15>::reference m_x; 01623 }; 01624 01625 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01626 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 16> : tuple_type<A16> { 01627 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a16) {} 01628 typename tuple_type<A16>::reference get() { return m_x; } 01629 typename tuple_type<A16>::const_reference get() const { return m_x; } 01630 private: 01631 typename tuple_type<A16>::reference m_x; 01632 }; 01633 01634 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 01635 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 17> : tuple_type<A17> { 01636 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a17) {} 01637 typename tuple_type<A17>::reference get() { return m_x; } 01638 typename tuple_type<A17>::const_reference get() const { return m_x; } 01639 private: 01640 typename tuple_type<A17>::reference m_x; 01641 }; 01642 01643 01644 01645 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01646 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 0> : tuple_type<A0> { 01647 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a0) {} 01648 typename tuple_type<A0>::reference get() { return m_x; } 01649 typename tuple_type<A0>::const_reference get() const { return m_x; } 01650 private: 01651 typename tuple_type<A0>::reference m_x; 01652 }; 01653 01654 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01655 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 1> : tuple_type<A1> { 01656 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a1) {} 01657 typename tuple_type<A1>::reference get() { return m_x; } 01658 typename tuple_type<A1>::const_reference get() const { return m_x; } 01659 private: 01660 typename tuple_type<A1>::reference m_x; 01661 }; 01662 01663 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01664 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 2> : tuple_type<A2> { 01665 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a2) {} 01666 typename tuple_type<A2>::reference get() { return m_x; } 01667 typename tuple_type<A2>::const_reference get() const { return m_x; } 01668 private: 01669 typename tuple_type<A2>::reference m_x; 01670 }; 01671 01672 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01673 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 3> : tuple_type<A3> { 01674 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a3) {} 01675 typename tuple_type<A3>::reference get() { return m_x; } 01676 typename tuple_type<A3>::const_reference get() const { return m_x; } 01677 private: 01678 typename tuple_type<A3>::reference m_x; 01679 }; 01680 01681 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01682 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 4> : tuple_type<A4> { 01683 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a4) {} 01684 typename tuple_type<A4>::reference get() { return m_x; } 01685 typename tuple_type<A4>::const_reference get() const { return m_x; } 01686 private: 01687 typename tuple_type<A4>::reference m_x; 01688 }; 01689 01690 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01691 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 5> : tuple_type<A5> { 01692 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a5) {} 01693 typename tuple_type<A5>::reference get() { return m_x; } 01694 typename tuple_type<A5>::const_reference get() const { return m_x; } 01695 private: 01696 typename tuple_type<A5>::reference m_x; 01697 }; 01698 01699 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01700 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 6> : tuple_type<A6> { 01701 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a6) {} 01702 typename tuple_type<A6>::reference get() { return m_x; } 01703 typename tuple_type<A6>::const_reference get() const { return m_x; } 01704 private: 01705 typename tuple_type<A6>::reference m_x; 01706 }; 01707 01708 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01709 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 7> : tuple_type<A7> { 01710 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a7) {} 01711 typename tuple_type<A7>::reference get() { return m_x; } 01712 typename tuple_type<A7>::const_reference get() const { return m_x; } 01713 private: 01714 typename tuple_type<A7>::reference m_x; 01715 }; 01716 01717 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01718 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 8> : tuple_type<A8> { 01719 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a8) {} 01720 typename tuple_type<A8>::reference get() { return m_x; } 01721 typename tuple_type<A8>::const_reference get() const { return m_x; } 01722 private: 01723 typename tuple_type<A8>::reference m_x; 01724 }; 01725 01726 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01727 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 9> : tuple_type<A9> { 01728 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a9) {} 01729 typename tuple_type<A9>::reference get() { return m_x; } 01730 typename tuple_type<A9>::const_reference get() const { return m_x; } 01731 private: 01732 typename tuple_type<A9>::reference m_x; 01733 }; 01734 01735 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01736 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 10> : tuple_type<A10> { 01737 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a10) {} 01738 typename tuple_type<A10>::reference get() { return m_x; } 01739 typename tuple_type<A10>::const_reference get() const { return m_x; } 01740 private: 01741 typename tuple_type<A10>::reference m_x; 01742 }; 01743 01744 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01745 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 11> : tuple_type<A11> { 01746 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a11) {} 01747 typename tuple_type<A11>::reference get() { return m_x; } 01748 typename tuple_type<A11>::const_reference get() const { return m_x; } 01749 private: 01750 typename tuple_type<A11>::reference m_x; 01751 }; 01752 01753 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01754 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 12> : tuple_type<A12> { 01755 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a12) {} 01756 typename tuple_type<A12>::reference get() { return m_x; } 01757 typename tuple_type<A12>::const_reference get() const { return m_x; } 01758 private: 01759 typename tuple_type<A12>::reference m_x; 01760 }; 01761 01762 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01763 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 13> : tuple_type<A13> { 01764 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a13) {} 01765 typename tuple_type<A13>::reference get() { return m_x; } 01766 typename tuple_type<A13>::const_reference get() const { return m_x; } 01767 private: 01768 typename tuple_type<A13>::reference m_x; 01769 }; 01770 01771 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01772 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 14> : tuple_type<A14> { 01773 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a14) {} 01774 typename tuple_type<A14>::reference get() { return m_x; } 01775 typename tuple_type<A14>::const_reference get() const { return m_x; } 01776 private: 01777 typename tuple_type<A14>::reference m_x; 01778 }; 01779 01780 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01781 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 15> : tuple_type<A15> { 01782 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a15) {} 01783 typename tuple_type<A15>::reference get() { return m_x; } 01784 typename tuple_type<A15>::const_reference get() const { return m_x; } 01785 private: 01786 typename tuple_type<A15>::reference m_x; 01787 }; 01788 01789 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01790 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 16> : tuple_type<A16> { 01791 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a16) {} 01792 typename tuple_type<A16>::reference get() { return m_x; } 01793 typename tuple_type<A16>::const_reference get() const { return m_x; } 01794 private: 01795 typename tuple_type<A16>::reference m_x; 01796 }; 01797 01798 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01799 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 17> : tuple_type<A17> { 01800 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a17) {} 01801 typename tuple_type<A17>::reference get() { return m_x; } 01802 typename tuple_type<A17>::const_reference get() const { return m_x; } 01803 private: 01804 typename tuple_type<A17>::reference m_x; 01805 }; 01806 01807 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 01808 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 18> : tuple_type<A18> { 01809 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a18) {} 01810 typename tuple_type<A18>::reference get() { return m_x; } 01811 typename tuple_type<A18>::const_reference get() const { return m_x; } 01812 private: 01813 typename tuple_type<A18>::reference m_x; 01814 }; 01815 01816 01817 01818 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01819 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 0> : tuple_type<A0> { 01820 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a0) {} 01821 typename tuple_type<A0>::reference get() { return m_x; } 01822 typename tuple_type<A0>::const_reference get() const { return m_x; } 01823 private: 01824 typename tuple_type<A0>::reference m_x; 01825 }; 01826 01827 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01828 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 1> : tuple_type<A1> { 01829 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a1) {} 01830 typename tuple_type<A1>::reference get() { return m_x; } 01831 typename tuple_type<A1>::const_reference get() const { return m_x; } 01832 private: 01833 typename tuple_type<A1>::reference m_x; 01834 }; 01835 01836 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01837 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 2> : tuple_type<A2> { 01838 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a2) {} 01839 typename tuple_type<A2>::reference get() { return m_x; } 01840 typename tuple_type<A2>::const_reference get() const { return m_x; } 01841 private: 01842 typename tuple_type<A2>::reference m_x; 01843 }; 01844 01845 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01846 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 3> : tuple_type<A3> { 01847 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a3) {} 01848 typename tuple_type<A3>::reference get() { return m_x; } 01849 typename tuple_type<A3>::const_reference get() const { return m_x; } 01850 private: 01851 typename tuple_type<A3>::reference m_x; 01852 }; 01853 01854 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01855 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 4> : tuple_type<A4> { 01856 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a4) {} 01857 typename tuple_type<A4>::reference get() { return m_x; } 01858 typename tuple_type<A4>::const_reference get() const { return m_x; } 01859 private: 01860 typename tuple_type<A4>::reference m_x; 01861 }; 01862 01863 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01864 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 5> : tuple_type<A5> { 01865 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a5) {} 01866 typename tuple_type<A5>::reference get() { return m_x; } 01867 typename tuple_type<A5>::const_reference get() const { return m_x; } 01868 private: 01869 typename tuple_type<A5>::reference m_x; 01870 }; 01871 01872 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01873 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 6> : tuple_type<A6> { 01874 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a6) {} 01875 typename tuple_type<A6>::reference get() { return m_x; } 01876 typename tuple_type<A6>::const_reference get() const { return m_x; } 01877 private: 01878 typename tuple_type<A6>::reference m_x; 01879 }; 01880 01881 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01882 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 7> : tuple_type<A7> { 01883 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a7) {} 01884 typename tuple_type<A7>::reference get() { return m_x; } 01885 typename tuple_type<A7>::const_reference get() const { return m_x; } 01886 private: 01887 typename tuple_type<A7>::reference m_x; 01888 }; 01889 01890 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01891 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 8> : tuple_type<A8> { 01892 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a8) {} 01893 typename tuple_type<A8>::reference get() { return m_x; } 01894 typename tuple_type<A8>::const_reference get() const { return m_x; } 01895 private: 01896 typename tuple_type<A8>::reference m_x; 01897 }; 01898 01899 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01900 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 9> : tuple_type<A9> { 01901 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a9) {} 01902 typename tuple_type<A9>::reference get() { return m_x; } 01903 typename tuple_type<A9>::const_reference get() const { return m_x; } 01904 private: 01905 typename tuple_type<A9>::reference m_x; 01906 }; 01907 01908 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01909 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 10> : tuple_type<A10> { 01910 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a10) {} 01911 typename tuple_type<A10>::reference get() { return m_x; } 01912 typename tuple_type<A10>::const_reference get() const { return m_x; } 01913 private: 01914 typename tuple_type<A10>::reference m_x; 01915 }; 01916 01917 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01918 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 11> : tuple_type<A11> { 01919 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a11) {} 01920 typename tuple_type<A11>::reference get() { return m_x; } 01921 typename tuple_type<A11>::const_reference get() const { return m_x; } 01922 private: 01923 typename tuple_type<A11>::reference m_x; 01924 }; 01925 01926 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01927 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 12> : tuple_type<A12> { 01928 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a12) {} 01929 typename tuple_type<A12>::reference get() { return m_x; } 01930 typename tuple_type<A12>::const_reference get() const { return m_x; } 01931 private: 01932 typename tuple_type<A12>::reference m_x; 01933 }; 01934 01935 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01936 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 13> : tuple_type<A13> { 01937 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a13) {} 01938 typename tuple_type<A13>::reference get() { return m_x; } 01939 typename tuple_type<A13>::const_reference get() const { return m_x; } 01940 private: 01941 typename tuple_type<A13>::reference m_x; 01942 }; 01943 01944 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01945 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 14> : tuple_type<A14> { 01946 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a14) {} 01947 typename tuple_type<A14>::reference get() { return m_x; } 01948 typename tuple_type<A14>::const_reference get() const { return m_x; } 01949 private: 01950 typename tuple_type<A14>::reference m_x; 01951 }; 01952 01953 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01954 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 15> : tuple_type<A15> { 01955 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a15) {} 01956 typename tuple_type<A15>::reference get() { return m_x; } 01957 typename tuple_type<A15>::const_reference get() const { return m_x; } 01958 private: 01959 typename tuple_type<A15>::reference m_x; 01960 }; 01961 01962 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01963 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 16> : tuple_type<A16> { 01964 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a16) {} 01965 typename tuple_type<A16>::reference get() { return m_x; } 01966 typename tuple_type<A16>::const_reference get() const { return m_x; } 01967 private: 01968 typename tuple_type<A16>::reference m_x; 01969 }; 01970 01971 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01972 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 17> : tuple_type<A17> { 01973 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a17) {} 01974 typename tuple_type<A17>::reference get() { return m_x; } 01975 typename tuple_type<A17>::const_reference get() const { return m_x; } 01976 private: 01977 typename tuple_type<A17>::reference m_x; 01978 }; 01979 01980 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01981 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 18> : tuple_type<A18> { 01982 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a18) {} 01983 typename tuple_type<A18>::reference get() { return m_x; } 01984 typename tuple_type<A18>::const_reference get() const { return m_x; } 01985 private: 01986 typename tuple_type<A18>::reference m_x; 01987 }; 01988 01989 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 01990 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 19> : tuple_type<A19> { 01991 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a19) {} 01992 typename tuple_type<A19>::reference get() { return m_x; } 01993 typename tuple_type<A19>::const_reference get() const { return m_x; } 01994 private: 01995 typename tuple_type<A19>::reference m_x; 01996 }; 01997 01998 01999 02000 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02001 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 0> : tuple_type<A0> { 02002 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a0) {} 02003 typename tuple_type<A0>::reference get() { return m_x; } 02004 typename tuple_type<A0>::const_reference get() const { return m_x; } 02005 private: 02006 typename tuple_type<A0>::reference m_x; 02007 }; 02008 02009 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02010 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 1> : tuple_type<A1> { 02011 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a1) {} 02012 typename tuple_type<A1>::reference get() { return m_x; } 02013 typename tuple_type<A1>::const_reference get() const { return m_x; } 02014 private: 02015 typename tuple_type<A1>::reference m_x; 02016 }; 02017 02018 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02019 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 2> : tuple_type<A2> { 02020 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a2) {} 02021 typename tuple_type<A2>::reference get() { return m_x; } 02022 typename tuple_type<A2>::const_reference get() const { return m_x; } 02023 private: 02024 typename tuple_type<A2>::reference m_x; 02025 }; 02026 02027 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02028 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 3> : tuple_type<A3> { 02029 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a3) {} 02030 typename tuple_type<A3>::reference get() { return m_x; } 02031 typename tuple_type<A3>::const_reference get() const { return m_x; } 02032 private: 02033 typename tuple_type<A3>::reference m_x; 02034 }; 02035 02036 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02037 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 4> : tuple_type<A4> { 02038 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a4) {} 02039 typename tuple_type<A4>::reference get() { return m_x; } 02040 typename tuple_type<A4>::const_reference get() const { return m_x; } 02041 private: 02042 typename tuple_type<A4>::reference m_x; 02043 }; 02044 02045 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02046 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 5> : tuple_type<A5> { 02047 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a5) {} 02048 typename tuple_type<A5>::reference get() { return m_x; } 02049 typename tuple_type<A5>::const_reference get() const { return m_x; } 02050 private: 02051 typename tuple_type<A5>::reference m_x; 02052 }; 02053 02054 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02055 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 6> : tuple_type<A6> { 02056 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a6) {} 02057 typename tuple_type<A6>::reference get() { return m_x; } 02058 typename tuple_type<A6>::const_reference get() const { return m_x; } 02059 private: 02060 typename tuple_type<A6>::reference m_x; 02061 }; 02062 02063 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02064 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 7> : tuple_type<A7> { 02065 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a7) {} 02066 typename tuple_type<A7>::reference get() { return m_x; } 02067 typename tuple_type<A7>::const_reference get() const { return m_x; } 02068 private: 02069 typename tuple_type<A7>::reference m_x; 02070 }; 02071 02072 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02073 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 8> : tuple_type<A8> { 02074 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a8) {} 02075 typename tuple_type<A8>::reference get() { return m_x; } 02076 typename tuple_type<A8>::const_reference get() const { return m_x; } 02077 private: 02078 typename tuple_type<A8>::reference m_x; 02079 }; 02080 02081 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02082 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 9> : tuple_type<A9> { 02083 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a9) {} 02084 typename tuple_type<A9>::reference get() { return m_x; } 02085 typename tuple_type<A9>::const_reference get() const { return m_x; } 02086 private: 02087 typename tuple_type<A9>::reference m_x; 02088 }; 02089 02090 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02091 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 10> : tuple_type<A10> { 02092 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a10) {} 02093 typename tuple_type<A10>::reference get() { return m_x; } 02094 typename tuple_type<A10>::const_reference get() const { return m_x; } 02095 private: 02096 typename tuple_type<A10>::reference m_x; 02097 }; 02098 02099 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02100 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 11> : tuple_type<A11> { 02101 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a11) {} 02102 typename tuple_type<A11>::reference get() { return m_x; } 02103 typename tuple_type<A11>::const_reference get() const { return m_x; } 02104 private: 02105 typename tuple_type<A11>::reference m_x; 02106 }; 02107 02108 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02109 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 12> : tuple_type<A12> { 02110 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a12) {} 02111 typename tuple_type<A12>::reference get() { return m_x; } 02112 typename tuple_type<A12>::const_reference get() const { return m_x; } 02113 private: 02114 typename tuple_type<A12>::reference m_x; 02115 }; 02116 02117 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02118 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 13> : tuple_type<A13> { 02119 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a13) {} 02120 typename tuple_type<A13>::reference get() { return m_x; } 02121 typename tuple_type<A13>::const_reference get() const { return m_x; } 02122 private: 02123 typename tuple_type<A13>::reference m_x; 02124 }; 02125 02126 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02127 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 14> : tuple_type<A14> { 02128 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a14) {} 02129 typename tuple_type<A14>::reference get() { return m_x; } 02130 typename tuple_type<A14>::const_reference get() const { return m_x; } 02131 private: 02132 typename tuple_type<A14>::reference m_x; 02133 }; 02134 02135 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02136 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 15> : tuple_type<A15> { 02137 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a15) {} 02138 typename tuple_type<A15>::reference get() { return m_x; } 02139 typename tuple_type<A15>::const_reference get() const { return m_x; } 02140 private: 02141 typename tuple_type<A15>::reference m_x; 02142 }; 02143 02144 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02145 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 16> : tuple_type<A16> { 02146 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a16) {} 02147 typename tuple_type<A16>::reference get() { return m_x; } 02148 typename tuple_type<A16>::const_reference get() const { return m_x; } 02149 private: 02150 typename tuple_type<A16>::reference m_x; 02151 }; 02152 02153 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02154 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 17> : tuple_type<A17> { 02155 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a17) {} 02156 typename tuple_type<A17>::reference get() { return m_x; } 02157 typename tuple_type<A17>::const_reference get() const { return m_x; } 02158 private: 02159 typename tuple_type<A17>::reference m_x; 02160 }; 02161 02162 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02163 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 18> : tuple_type<A18> { 02164 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a18) {} 02165 typename tuple_type<A18>::reference get() { return m_x; } 02166 typename tuple_type<A18>::const_reference get() const { return m_x; } 02167 private: 02168 typename tuple_type<A18>::reference m_x; 02169 }; 02170 02171 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02172 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 19> : tuple_type<A19> { 02173 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a19) {} 02174 typename tuple_type<A19>::reference get() { return m_x; } 02175 typename tuple_type<A19>::const_reference get() const { return m_x; } 02176 private: 02177 typename tuple_type<A19>::reference m_x; 02178 }; 02179 02180 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 02181 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 20> : tuple_type<A20> { 02182 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a20) {} 02183 typename tuple_type<A20>::reference get() { return m_x; } 02184 typename tuple_type<A20>::const_reference get() const { return m_x; } 02185 private: 02186 typename tuple_type<A20>::reference m_x; 02187 }; 02188 02189 02190 02191 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02192 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 0> : tuple_type<A0> { 02193 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a0) {} 02194 typename tuple_type<A0>::reference get() { return m_x; } 02195 typename tuple_type<A0>::const_reference get() const { return m_x; } 02196 private: 02197 typename tuple_type<A0>::reference m_x; 02198 }; 02199 02200 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02201 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 1> : tuple_type<A1> { 02202 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a1) {} 02203 typename tuple_type<A1>::reference get() { return m_x; } 02204 typename tuple_type<A1>::const_reference get() const { return m_x; } 02205 private: 02206 typename tuple_type<A1>::reference m_x; 02207 }; 02208 02209 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02210 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 2> : tuple_type<A2> { 02211 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a2) {} 02212 typename tuple_type<A2>::reference get() { return m_x; } 02213 typename tuple_type<A2>::const_reference get() const { return m_x; } 02214 private: 02215 typename tuple_type<A2>::reference m_x; 02216 }; 02217 02218 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02219 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 3> : tuple_type<A3> { 02220 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a3) {} 02221 typename tuple_type<A3>::reference get() { return m_x; } 02222 typename tuple_type<A3>::const_reference get() const { return m_x; } 02223 private: 02224 typename tuple_type<A3>::reference m_x; 02225 }; 02226 02227 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02228 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 4> : tuple_type<A4> { 02229 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a4) {} 02230 typename tuple_type<A4>::reference get() { return m_x; } 02231 typename tuple_type<A4>::const_reference get() const { return m_x; } 02232 private: 02233 typename tuple_type<A4>::reference m_x; 02234 }; 02235 02236 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02237 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 5> : tuple_type<A5> { 02238 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a5) {} 02239 typename tuple_type<A5>::reference get() { return m_x; } 02240 typename tuple_type<A5>::const_reference get() const { return m_x; } 02241 private: 02242 typename tuple_type<A5>::reference m_x; 02243 }; 02244 02245 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02246 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 6> : tuple_type<A6> { 02247 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a6) {} 02248 typename tuple_type<A6>::reference get() { return m_x; } 02249 typename tuple_type<A6>::const_reference get() const { return m_x; } 02250 private: 02251 typename tuple_type<A6>::reference m_x; 02252 }; 02253 02254 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02255 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 7> : tuple_type<A7> { 02256 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a7) {} 02257 typename tuple_type<A7>::reference get() { return m_x; } 02258 typename tuple_type<A7>::const_reference get() const { return m_x; } 02259 private: 02260 typename tuple_type<A7>::reference m_x; 02261 }; 02262 02263 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02264 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 8> : tuple_type<A8> { 02265 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a8) {} 02266 typename tuple_type<A8>::reference get() { return m_x; } 02267 typename tuple_type<A8>::const_reference get() const { return m_x; } 02268 private: 02269 typename tuple_type<A8>::reference m_x; 02270 }; 02271 02272 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02273 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 9> : tuple_type<A9> { 02274 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a9) {} 02275 typename tuple_type<A9>::reference get() { return m_x; } 02276 typename tuple_type<A9>::const_reference get() const { return m_x; } 02277 private: 02278 typename tuple_type<A9>::reference m_x; 02279 }; 02280 02281 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02282 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 10> : tuple_type<A10> { 02283 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a10) {} 02284 typename tuple_type<A10>::reference get() { return m_x; } 02285 typename tuple_type<A10>::const_reference get() const { return m_x; } 02286 private: 02287 typename tuple_type<A10>::reference m_x; 02288 }; 02289 02290 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02291 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 11> : tuple_type<A11> { 02292 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a11) {} 02293 typename tuple_type<A11>::reference get() { return m_x; } 02294 typename tuple_type<A11>::const_reference get() const { return m_x; } 02295 private: 02296 typename tuple_type<A11>::reference m_x; 02297 }; 02298 02299 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02300 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 12> : tuple_type<A12> { 02301 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a12) {} 02302 typename tuple_type<A12>::reference get() { return m_x; } 02303 typename tuple_type<A12>::const_reference get() const { return m_x; } 02304 private: 02305 typename tuple_type<A12>::reference m_x; 02306 }; 02307 02308 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02309 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 13> : tuple_type<A13> { 02310 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a13) {} 02311 typename tuple_type<A13>::reference get() { return m_x; } 02312 typename tuple_type<A13>::const_reference get() const { return m_x; } 02313 private: 02314 typename tuple_type<A13>::reference m_x; 02315 }; 02316 02317 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02318 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 14> : tuple_type<A14> { 02319 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a14) {} 02320 typename tuple_type<A14>::reference get() { return m_x; } 02321 typename tuple_type<A14>::const_reference get() const { return m_x; } 02322 private: 02323 typename tuple_type<A14>::reference m_x; 02324 }; 02325 02326 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02327 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 15> : tuple_type<A15> { 02328 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a15) {} 02329 typename tuple_type<A15>::reference get() { return m_x; } 02330 typename tuple_type<A15>::const_reference get() const { return m_x; } 02331 private: 02332 typename tuple_type<A15>::reference m_x; 02333 }; 02334 02335 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02336 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 16> : tuple_type<A16> { 02337 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a16) {} 02338 typename tuple_type<A16>::reference get() { return m_x; } 02339 typename tuple_type<A16>::const_reference get() const { return m_x; } 02340 private: 02341 typename tuple_type<A16>::reference m_x; 02342 }; 02343 02344 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02345 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 17> : tuple_type<A17> { 02346 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a17) {} 02347 typename tuple_type<A17>::reference get() { return m_x; } 02348 typename tuple_type<A17>::const_reference get() const { return m_x; } 02349 private: 02350 typename tuple_type<A17>::reference m_x; 02351 }; 02352 02353 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02354 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 18> : tuple_type<A18> { 02355 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a18) {} 02356 typename tuple_type<A18>::reference get() { return m_x; } 02357 typename tuple_type<A18>::const_reference get() const { return m_x; } 02358 private: 02359 typename tuple_type<A18>::reference m_x; 02360 }; 02361 02362 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02363 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 19> : tuple_type<A19> { 02364 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a19) {} 02365 typename tuple_type<A19>::reference get() { return m_x; } 02366 typename tuple_type<A19>::const_reference get() const { return m_x; } 02367 private: 02368 typename tuple_type<A19>::reference m_x; 02369 }; 02370 02371 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02372 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 20> : tuple_type<A20> { 02373 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a20) {} 02374 typename tuple_type<A20>::reference get() { return m_x; } 02375 typename tuple_type<A20>::const_reference get() const { return m_x; } 02376 private: 02377 typename tuple_type<A20>::reference m_x; 02378 }; 02379 02380 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 02381 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 21> : tuple_type<A21> { 02382 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a21) {} 02383 typename tuple_type<A21>::reference get() { return m_x; } 02384 typename tuple_type<A21>::const_reference get() const { return m_x; } 02385 private: 02386 typename tuple_type<A21>::reference m_x; 02387 }; 02388 02389 02390 02391 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02392 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 0> : tuple_type<A0> { 02393 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a0) {} 02394 typename tuple_type<A0>::reference get() { return m_x; } 02395 typename tuple_type<A0>::const_reference get() const { return m_x; } 02396 private: 02397 typename tuple_type<A0>::reference m_x; 02398 }; 02399 02400 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02401 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 1> : tuple_type<A1> { 02402 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a1) {} 02403 typename tuple_type<A1>::reference get() { return m_x; } 02404 typename tuple_type<A1>::const_reference get() const { return m_x; } 02405 private: 02406 typename tuple_type<A1>::reference m_x; 02407 }; 02408 02409 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02410 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 2> : tuple_type<A2> { 02411 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a2) {} 02412 typename tuple_type<A2>::reference get() { return m_x; } 02413 typename tuple_type<A2>::const_reference get() const { return m_x; } 02414 private: 02415 typename tuple_type<A2>::reference m_x; 02416 }; 02417 02418 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02419 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 3> : tuple_type<A3> { 02420 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a3) {} 02421 typename tuple_type<A3>::reference get() { return m_x; } 02422 typename tuple_type<A3>::const_reference get() const { return m_x; } 02423 private: 02424 typename tuple_type<A3>::reference m_x; 02425 }; 02426 02427 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02428 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 4> : tuple_type<A4> { 02429 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a4) {} 02430 typename tuple_type<A4>::reference get() { return m_x; } 02431 typename tuple_type<A4>::const_reference get() const { return m_x; } 02432 private: 02433 typename tuple_type<A4>::reference m_x; 02434 }; 02435 02436 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02437 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 5> : tuple_type<A5> { 02438 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a5) {} 02439 typename tuple_type<A5>::reference get() { return m_x; } 02440 typename tuple_type<A5>::const_reference get() const { return m_x; } 02441 private: 02442 typename tuple_type<A5>::reference m_x; 02443 }; 02444 02445 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02446 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 6> : tuple_type<A6> { 02447 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a6) {} 02448 typename tuple_type<A6>::reference get() { return m_x; } 02449 typename tuple_type<A6>::const_reference get() const { return m_x; } 02450 private: 02451 typename tuple_type<A6>::reference m_x; 02452 }; 02453 02454 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02455 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 7> : tuple_type<A7> { 02456 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a7) {} 02457 typename tuple_type<A7>::reference get() { return m_x; } 02458 typename tuple_type<A7>::const_reference get() const { return m_x; } 02459 private: 02460 typename tuple_type<A7>::reference m_x; 02461 }; 02462 02463 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02464 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 8> : tuple_type<A8> { 02465 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a8) {} 02466 typename tuple_type<A8>::reference get() { return m_x; } 02467 typename tuple_type<A8>::const_reference get() const { return m_x; } 02468 private: 02469 typename tuple_type<A8>::reference m_x; 02470 }; 02471 02472 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02473 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 9> : tuple_type<A9> { 02474 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a9) {} 02475 typename tuple_type<A9>::reference get() { return m_x; } 02476 typename tuple_type<A9>::const_reference get() const { return m_x; } 02477 private: 02478 typename tuple_type<A9>::reference m_x; 02479 }; 02480 02481 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02482 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 10> : tuple_type<A10> { 02483 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a10) {} 02484 typename tuple_type<A10>::reference get() { return m_x; } 02485 typename tuple_type<A10>::const_reference get() const { return m_x; } 02486 private: 02487 typename tuple_type<A10>::reference m_x; 02488 }; 02489 02490 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02491 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 11> : tuple_type<A11> { 02492 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a11) {} 02493 typename tuple_type<A11>::reference get() { return m_x; } 02494 typename tuple_type<A11>::const_reference get() const { return m_x; } 02495 private: 02496 typename tuple_type<A11>::reference m_x; 02497 }; 02498 02499 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02500 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 12> : tuple_type<A12> { 02501 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a12) {} 02502 typename tuple_type<A12>::reference get() { return m_x; } 02503 typename tuple_type<A12>::const_reference get() const { return m_x; } 02504 private: 02505 typename tuple_type<A12>::reference m_x; 02506 }; 02507 02508 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02509 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 13> : tuple_type<A13> { 02510 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a13) {} 02511 typename tuple_type<A13>::reference get() { return m_x; } 02512 typename tuple_type<A13>::const_reference get() const { return m_x; } 02513 private: 02514 typename tuple_type<A13>::reference m_x; 02515 }; 02516 02517 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02518 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 14> : tuple_type<A14> { 02519 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a14) {} 02520 typename tuple_type<A14>::reference get() { return m_x; } 02521 typename tuple_type<A14>::const_reference get() const { return m_x; } 02522 private: 02523 typename tuple_type<A14>::reference m_x; 02524 }; 02525 02526 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02527 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 15> : tuple_type<A15> { 02528 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a15) {} 02529 typename tuple_type<A15>::reference get() { return m_x; } 02530 typename tuple_type<A15>::const_reference get() const { return m_x; } 02531 private: 02532 typename tuple_type<A15>::reference m_x; 02533 }; 02534 02535 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02536 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 16> : tuple_type<A16> { 02537 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a16) {} 02538 typename tuple_type<A16>::reference get() { return m_x; } 02539 typename tuple_type<A16>::const_reference get() const { return m_x; } 02540 private: 02541 typename tuple_type<A16>::reference m_x; 02542 }; 02543 02544 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02545 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 17> : tuple_type<A17> { 02546 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a17) {} 02547 typename tuple_type<A17>::reference get() { return m_x; } 02548 typename tuple_type<A17>::const_reference get() const { return m_x; } 02549 private: 02550 typename tuple_type<A17>::reference m_x; 02551 }; 02552 02553 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02554 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 18> : tuple_type<A18> { 02555 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a18) {} 02556 typename tuple_type<A18>::reference get() { return m_x; } 02557 typename tuple_type<A18>::const_reference get() const { return m_x; } 02558 private: 02559 typename tuple_type<A18>::reference m_x; 02560 }; 02561 02562 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02563 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 19> : tuple_type<A19> { 02564 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a19) {} 02565 typename tuple_type<A19>::reference get() { return m_x; } 02566 typename tuple_type<A19>::const_reference get() const { return m_x; } 02567 private: 02568 typename tuple_type<A19>::reference m_x; 02569 }; 02570 02571 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02572 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 20> : tuple_type<A20> { 02573 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a20) {} 02574 typename tuple_type<A20>::reference get() { return m_x; } 02575 typename tuple_type<A20>::const_reference get() const { return m_x; } 02576 private: 02577 typename tuple_type<A20>::reference m_x; 02578 }; 02579 02580 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02581 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 21> : tuple_type<A21> { 02582 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a21) {} 02583 typename tuple_type<A21>::reference get() { return m_x; } 02584 typename tuple_type<A21>::const_reference get() const { return m_x; } 02585 private: 02586 typename tuple_type<A21>::reference m_x; 02587 }; 02588 02589 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 02590 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 22> : tuple_type<A22> { 02591 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a22) {} 02592 typename tuple_type<A22>::reference get() { return m_x; } 02593 typename tuple_type<A22>::const_reference get() const { return m_x; } 02594 private: 02595 typename tuple_type<A22>::reference m_x; 02596 }; 02597 02598 02599 02600 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02601 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 0> : tuple_type<A0> { 02602 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a0) {} 02603 typename tuple_type<A0>::reference get() { return m_x; } 02604 typename tuple_type<A0>::const_reference get() const { return m_x; } 02605 private: 02606 typename tuple_type<A0>::reference m_x; 02607 }; 02608 02609 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02610 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 1> : tuple_type<A1> { 02611 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a1) {} 02612 typename tuple_type<A1>::reference get() { return m_x; } 02613 typename tuple_type<A1>::const_reference get() const { return m_x; } 02614 private: 02615 typename tuple_type<A1>::reference m_x; 02616 }; 02617 02618 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02619 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 2> : tuple_type<A2> { 02620 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a2) {} 02621 typename tuple_type<A2>::reference get() { return m_x; } 02622 typename tuple_type<A2>::const_reference get() const { return m_x; } 02623 private: 02624 typename tuple_type<A2>::reference m_x; 02625 }; 02626 02627 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02628 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 3> : tuple_type<A3> { 02629 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a3) {} 02630 typename tuple_type<A3>::reference get() { return m_x; } 02631 typename tuple_type<A3>::const_reference get() const { return m_x; } 02632 private: 02633 typename tuple_type<A3>::reference m_x; 02634 }; 02635 02636 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02637 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 4> : tuple_type<A4> { 02638 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a4) {} 02639 typename tuple_type<A4>::reference get() { return m_x; } 02640 typename tuple_type<A4>::const_reference get() const { return m_x; } 02641 private: 02642 typename tuple_type<A4>::reference m_x; 02643 }; 02644 02645 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02646 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 5> : tuple_type<A5> { 02647 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a5) {} 02648 typename tuple_type<A5>::reference get() { return m_x; } 02649 typename tuple_type<A5>::const_reference get() const { return m_x; } 02650 private: 02651 typename tuple_type<A5>::reference m_x; 02652 }; 02653 02654 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02655 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 6> : tuple_type<A6> { 02656 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a6) {} 02657 typename tuple_type<A6>::reference get() { return m_x; } 02658 typename tuple_type<A6>::const_reference get() const { return m_x; } 02659 private: 02660 typename tuple_type<A6>::reference m_x; 02661 }; 02662 02663 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02664 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 7> : tuple_type<A7> { 02665 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a7) {} 02666 typename tuple_type<A7>::reference get() { return m_x; } 02667 typename tuple_type<A7>::const_reference get() const { return m_x; } 02668 private: 02669 typename tuple_type<A7>::reference m_x; 02670 }; 02671 02672 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02673 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 8> : tuple_type<A8> { 02674 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a8) {} 02675 typename tuple_type<A8>::reference get() { return m_x; } 02676 typename tuple_type<A8>::const_reference get() const { return m_x; } 02677 private: 02678 typename tuple_type<A8>::reference m_x; 02679 }; 02680 02681 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02682 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 9> : tuple_type<A9> { 02683 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a9) {} 02684 typename tuple_type<A9>::reference get() { return m_x; } 02685 typename tuple_type<A9>::const_reference get() const { return m_x; } 02686 private: 02687 typename tuple_type<A9>::reference m_x; 02688 }; 02689 02690 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02691 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 10> : tuple_type<A10> { 02692 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a10) {} 02693 typename tuple_type<A10>::reference get() { return m_x; } 02694 typename tuple_type<A10>::const_reference get() const { return m_x; } 02695 private: 02696 typename tuple_type<A10>::reference m_x; 02697 }; 02698 02699 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02700 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 11> : tuple_type<A11> { 02701 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a11) {} 02702 typename tuple_type<A11>::reference get() { return m_x; } 02703 typename tuple_type<A11>::const_reference get() const { return m_x; } 02704 private: 02705 typename tuple_type<A11>::reference m_x; 02706 }; 02707 02708 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02709 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 12> : tuple_type<A12> { 02710 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a12) {} 02711 typename tuple_type<A12>::reference get() { return m_x; } 02712 typename tuple_type<A12>::const_reference get() const { return m_x; } 02713 private: 02714 typename tuple_type<A12>::reference m_x; 02715 }; 02716 02717 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02718 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 13> : tuple_type<A13> { 02719 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a13) {} 02720 typename tuple_type<A13>::reference get() { return m_x; } 02721 typename tuple_type<A13>::const_reference get() const { return m_x; } 02722 private: 02723 typename tuple_type<A13>::reference m_x; 02724 }; 02725 02726 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02727 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 14> : tuple_type<A14> { 02728 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a14) {} 02729 typename tuple_type<A14>::reference get() { return m_x; } 02730 typename tuple_type<A14>::const_reference get() const { return m_x; } 02731 private: 02732 typename tuple_type<A14>::reference m_x; 02733 }; 02734 02735 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02736 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 15> : tuple_type<A15> { 02737 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a15) {} 02738 typename tuple_type<A15>::reference get() { return m_x; } 02739 typename tuple_type<A15>::const_reference get() const { return m_x; } 02740 private: 02741 typename tuple_type<A15>::reference m_x; 02742 }; 02743 02744 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02745 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 16> : tuple_type<A16> { 02746 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a16) {} 02747 typename tuple_type<A16>::reference get() { return m_x; } 02748 typename tuple_type<A16>::const_reference get() const { return m_x; } 02749 private: 02750 typename tuple_type<A16>::reference m_x; 02751 }; 02752 02753 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02754 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 17> : tuple_type<A17> { 02755 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a17) {} 02756 typename tuple_type<A17>::reference get() { return m_x; } 02757 typename tuple_type<A17>::const_reference get() const { return m_x; } 02758 private: 02759 typename tuple_type<A17>::reference m_x; 02760 }; 02761 02762 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02763 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 18> : tuple_type<A18> { 02764 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a18) {} 02765 typename tuple_type<A18>::reference get() { return m_x; } 02766 typename tuple_type<A18>::const_reference get() const { return m_x; } 02767 private: 02768 typename tuple_type<A18>::reference m_x; 02769 }; 02770 02771 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02772 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 19> : tuple_type<A19> { 02773 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a19) {} 02774 typename tuple_type<A19>::reference get() { return m_x; } 02775 typename tuple_type<A19>::const_reference get() const { return m_x; } 02776 private: 02777 typename tuple_type<A19>::reference m_x; 02778 }; 02779 02780 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02781 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 20> : tuple_type<A20> { 02782 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a20) {} 02783 typename tuple_type<A20>::reference get() { return m_x; } 02784 typename tuple_type<A20>::const_reference get() const { return m_x; } 02785 private: 02786 typename tuple_type<A20>::reference m_x; 02787 }; 02788 02789 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02790 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 21> : tuple_type<A21> { 02791 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a21) {} 02792 typename tuple_type<A21>::reference get() { return m_x; } 02793 typename tuple_type<A21>::const_reference get() const { return m_x; } 02794 private: 02795 typename tuple_type<A21>::reference m_x; 02796 }; 02797 02798 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02799 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 22> : tuple_type<A22> { 02800 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a22) {} 02801 typename tuple_type<A22>::reference get() { return m_x; } 02802 typename tuple_type<A22>::const_reference get() const { return m_x; } 02803 private: 02804 typename tuple_type<A22>::reference m_x; 02805 }; 02806 02807 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 02808 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 23> : tuple_type<A23> { 02809 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a23) {} 02810 typename tuple_type<A23>::reference get() { return m_x; } 02811 typename tuple_type<A23>::const_reference get() const { return m_x; } 02812 private: 02813 typename tuple_type<A23>::reference m_x; 02814 }; 02815 02816 02817 02818 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02819 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 0> : tuple_type<A0> { 02820 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a0) {} 02821 typename tuple_type<A0>::reference get() { return m_x; } 02822 typename tuple_type<A0>::const_reference get() const { return m_x; } 02823 private: 02824 typename tuple_type<A0>::reference m_x; 02825 }; 02826 02827 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02828 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 1> : tuple_type<A1> { 02829 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a1) {} 02830 typename tuple_type<A1>::reference get() { return m_x; } 02831 typename tuple_type<A1>::const_reference get() const { return m_x; } 02832 private: 02833 typename tuple_type<A1>::reference m_x; 02834 }; 02835 02836 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02837 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 2> : tuple_type<A2> { 02838 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a2) {} 02839 typename tuple_type<A2>::reference get() { return m_x; } 02840 typename tuple_type<A2>::const_reference get() const { return m_x; } 02841 private: 02842 typename tuple_type<A2>::reference m_x; 02843 }; 02844 02845 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02846 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 3> : tuple_type<A3> { 02847 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a3) {} 02848 typename tuple_type<A3>::reference get() { return m_x; } 02849 typename tuple_type<A3>::const_reference get() const { return m_x; } 02850 private: 02851 typename tuple_type<A3>::reference m_x; 02852 }; 02853 02854 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02855 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 4> : tuple_type<A4> { 02856 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a4) {} 02857 typename tuple_type<A4>::reference get() { return m_x; } 02858 typename tuple_type<A4>::const_reference get() const { return m_x; } 02859 private: 02860 typename tuple_type<A4>::reference m_x; 02861 }; 02862 02863 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02864 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 5> : tuple_type<A5> { 02865 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a5) {} 02866 typename tuple_type<A5>::reference get() { return m_x; } 02867 typename tuple_type<A5>::const_reference get() const { return m_x; } 02868 private: 02869 typename tuple_type<A5>::reference m_x; 02870 }; 02871 02872 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02873 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 6> : tuple_type<A6> { 02874 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a6) {} 02875 typename tuple_type<A6>::reference get() { return m_x; } 02876 typename tuple_type<A6>::const_reference get() const { return m_x; } 02877 private: 02878 typename tuple_type<A6>::reference m_x; 02879 }; 02880 02881 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02882 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 7> : tuple_type<A7> { 02883 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a7) {} 02884 typename tuple_type<A7>::reference get() { return m_x; } 02885 typename tuple_type<A7>::const_reference get() const { return m_x; } 02886 private: 02887 typename tuple_type<A7>::reference m_x; 02888 }; 02889 02890 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02891 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 8> : tuple_type<A8> { 02892 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a8) {} 02893 typename tuple_type<A8>::reference get() { return m_x; } 02894 typename tuple_type<A8>::const_reference get() const { return m_x; } 02895 private: 02896 typename tuple_type<A8>::reference m_x; 02897 }; 02898 02899 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02900 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 9> : tuple_type<A9> { 02901 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a9) {} 02902 typename tuple_type<A9>::reference get() { return m_x; } 02903 typename tuple_type<A9>::const_reference get() const { return m_x; } 02904 private: 02905 typename tuple_type<A9>::reference m_x; 02906 }; 02907 02908 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02909 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 10> : tuple_type<A10> { 02910 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a10) {} 02911 typename tuple_type<A10>::reference get() { return m_x; } 02912 typename tuple_type<A10>::const_reference get() const { return m_x; } 02913 private: 02914 typename tuple_type<A10>::reference m_x; 02915 }; 02916 02917 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02918 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 11> : tuple_type<A11> { 02919 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a11) {} 02920 typename tuple_type<A11>::reference get() { return m_x; } 02921 typename tuple_type<A11>::const_reference get() const { return m_x; } 02922 private: 02923 typename tuple_type<A11>::reference m_x; 02924 }; 02925 02926 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02927 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 12> : tuple_type<A12> { 02928 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a12) {} 02929 typename tuple_type<A12>::reference get() { return m_x; } 02930 typename tuple_type<A12>::const_reference get() const { return m_x; } 02931 private: 02932 typename tuple_type<A12>::reference m_x; 02933 }; 02934 02935 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02936 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 13> : tuple_type<A13> { 02937 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a13) {} 02938 typename tuple_type<A13>::reference get() { return m_x; } 02939 typename tuple_type<A13>::const_reference get() const { return m_x; } 02940 private: 02941 typename tuple_type<A13>::reference m_x; 02942 }; 02943 02944 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02945 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 14> : tuple_type<A14> { 02946 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a14) {} 02947 typename tuple_type<A14>::reference get() { return m_x; } 02948 typename tuple_type<A14>::const_reference get() const { return m_x; } 02949 private: 02950 typename tuple_type<A14>::reference m_x; 02951 }; 02952 02953 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02954 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 15> : tuple_type<A15> { 02955 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a15) {} 02956 typename tuple_type<A15>::reference get() { return m_x; } 02957 typename tuple_type<A15>::const_reference get() const { return m_x; } 02958 private: 02959 typename tuple_type<A15>::reference m_x; 02960 }; 02961 02962 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02963 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 16> : tuple_type<A16> { 02964 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a16) {} 02965 typename tuple_type<A16>::reference get() { return m_x; } 02966 typename tuple_type<A16>::const_reference get() const { return m_x; } 02967 private: 02968 typename tuple_type<A16>::reference m_x; 02969 }; 02970 02971 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02972 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 17> : tuple_type<A17> { 02973 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a17) {} 02974 typename tuple_type<A17>::reference get() { return m_x; } 02975 typename tuple_type<A17>::const_reference get() const { return m_x; } 02976 private: 02977 typename tuple_type<A17>::reference m_x; 02978 }; 02979 02980 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02981 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 18> : tuple_type<A18> { 02982 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a18) {} 02983 typename tuple_type<A18>::reference get() { return m_x; } 02984 typename tuple_type<A18>::const_reference get() const { return m_x; } 02985 private: 02986 typename tuple_type<A18>::reference m_x; 02987 }; 02988 02989 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02990 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 19> : tuple_type<A19> { 02991 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a19) {} 02992 typename tuple_type<A19>::reference get() { return m_x; } 02993 typename tuple_type<A19>::const_reference get() const { return m_x; } 02994 private: 02995 typename tuple_type<A19>::reference m_x; 02996 }; 02997 02998 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 02999 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 20> : tuple_type<A20> { 03000 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a20) {} 03001 typename tuple_type<A20>::reference get() { return m_x; } 03002 typename tuple_type<A20>::const_reference get() const { return m_x; } 03003 private: 03004 typename tuple_type<A20>::reference m_x; 03005 }; 03006 03007 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 03008 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 21> : tuple_type<A21> { 03009 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a21) {} 03010 typename tuple_type<A21>::reference get() { return m_x; } 03011 typename tuple_type<A21>::const_reference get() const { return m_x; } 03012 private: 03013 typename tuple_type<A21>::reference m_x; 03014 }; 03015 03016 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 03017 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 22> : tuple_type<A22> { 03018 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a22) {} 03019 typename tuple_type<A22>::reference get() { return m_x; } 03020 typename tuple_type<A22>::const_reference get() const { return m_x; } 03021 private: 03022 typename tuple_type<A22>::reference m_x; 03023 }; 03024 03025 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 03026 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 23> : tuple_type<A23> { 03027 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a23) {} 03028 typename tuple_type<A23>::reference get() { return m_x; } 03029 typename tuple_type<A23>::const_reference get() const { return m_x; } 03030 private: 03031 typename tuple_type<A23>::reference m_x; 03032 }; 03033 03034 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 03035 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 24> : tuple_type<A24> { 03036 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a24) {} 03037 typename tuple_type<A24>::reference get() { return m_x; } 03038 typename tuple_type<A24>::const_reference get() const { return m_x; } 03039 private: 03040 typename tuple_type<A24>::reference m_x; 03041 }; 03042 03043 03044 03045 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03046 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 0> : tuple_type<A0> { 03047 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a0) {} 03048 typename tuple_type<A0>::reference get() { return m_x; } 03049 typename tuple_type<A0>::const_reference get() const { return m_x; } 03050 private: 03051 typename tuple_type<A0>::reference m_x; 03052 }; 03053 03054 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03055 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 1> : tuple_type<A1> { 03056 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a1) {} 03057 typename tuple_type<A1>::reference get() { return m_x; } 03058 typename tuple_type<A1>::const_reference get() const { return m_x; } 03059 private: 03060 typename tuple_type<A1>::reference m_x; 03061 }; 03062 03063 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03064 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 2> : tuple_type<A2> { 03065 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a2) {} 03066 typename tuple_type<A2>::reference get() { return m_x; } 03067 typename tuple_type<A2>::const_reference get() const { return m_x; } 03068 private: 03069 typename tuple_type<A2>::reference m_x; 03070 }; 03071 03072 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03073 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 3> : tuple_type<A3> { 03074 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a3) {} 03075 typename tuple_type<A3>::reference get() { return m_x; } 03076 typename tuple_type<A3>::const_reference get() const { return m_x; } 03077 private: 03078 typename tuple_type<A3>::reference m_x; 03079 }; 03080 03081 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03082 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 4> : tuple_type<A4> { 03083 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a4) {} 03084 typename tuple_type<A4>::reference get() { return m_x; } 03085 typename tuple_type<A4>::const_reference get() const { return m_x; } 03086 private: 03087 typename tuple_type<A4>::reference m_x; 03088 }; 03089 03090 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03091 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 5> : tuple_type<A5> { 03092 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a5) {} 03093 typename tuple_type<A5>::reference get() { return m_x; } 03094 typename tuple_type<A5>::const_reference get() const { return m_x; } 03095 private: 03096 typename tuple_type<A5>::reference m_x; 03097 }; 03098 03099 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03100 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 6> : tuple_type<A6> { 03101 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a6) {} 03102 typename tuple_type<A6>::reference get() { return m_x; } 03103 typename tuple_type<A6>::const_reference get() const { return m_x; } 03104 private: 03105 typename tuple_type<A6>::reference m_x; 03106 }; 03107 03108 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03109 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 7> : tuple_type<A7> { 03110 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a7) {} 03111 typename tuple_type<A7>::reference get() { return m_x; } 03112 typename tuple_type<A7>::const_reference get() const { return m_x; } 03113 private: 03114 typename tuple_type<A7>::reference m_x; 03115 }; 03116 03117 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03118 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 8> : tuple_type<A8> { 03119 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a8) {} 03120 typename tuple_type<A8>::reference get() { return m_x; } 03121 typename tuple_type<A8>::const_reference get() const { return m_x; } 03122 private: 03123 typename tuple_type<A8>::reference m_x; 03124 }; 03125 03126 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03127 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 9> : tuple_type<A9> { 03128 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a9) {} 03129 typename tuple_type<A9>::reference get() { return m_x; } 03130 typename tuple_type<A9>::const_reference get() const { return m_x; } 03131 private: 03132 typename tuple_type<A9>::reference m_x; 03133 }; 03134 03135 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03136 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 10> : tuple_type<A10> { 03137 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a10) {} 03138 typename tuple_type<A10>::reference get() { return m_x; } 03139 typename tuple_type<A10>::const_reference get() const { return m_x; } 03140 private: 03141 typename tuple_type<A10>::reference m_x; 03142 }; 03143 03144 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03145 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 11> : tuple_type<A11> { 03146 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a11) {} 03147 typename tuple_type<A11>::reference get() { return m_x; } 03148 typename tuple_type<A11>::const_reference get() const { return m_x; } 03149 private: 03150 typename tuple_type<A11>::reference m_x; 03151 }; 03152 03153 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03154 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 12> : tuple_type<A12> { 03155 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a12) {} 03156 typename tuple_type<A12>::reference get() { return m_x; } 03157 typename tuple_type<A12>::const_reference get() const { return m_x; } 03158 private: 03159 typename tuple_type<A12>::reference m_x; 03160 }; 03161 03162 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03163 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 13> : tuple_type<A13> { 03164 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a13) {} 03165 typename tuple_type<A13>::reference get() { return m_x; } 03166 typename tuple_type<A13>::const_reference get() const { return m_x; } 03167 private: 03168 typename tuple_type<A13>::reference m_x; 03169 }; 03170 03171 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03172 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 14> : tuple_type<A14> { 03173 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a14) {} 03174 typename tuple_type<A14>::reference get() { return m_x; } 03175 typename tuple_type<A14>::const_reference get() const { return m_x; } 03176 private: 03177 typename tuple_type<A14>::reference m_x; 03178 }; 03179 03180 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03181 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 15> : tuple_type<A15> { 03182 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a15) {} 03183 typename tuple_type<A15>::reference get() { return m_x; } 03184 typename tuple_type<A15>::const_reference get() const { return m_x; } 03185 private: 03186 typename tuple_type<A15>::reference m_x; 03187 }; 03188 03189 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03190 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 16> : tuple_type<A16> { 03191 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a16) {} 03192 typename tuple_type<A16>::reference get() { return m_x; } 03193 typename tuple_type<A16>::const_reference get() const { return m_x; } 03194 private: 03195 typename tuple_type<A16>::reference m_x; 03196 }; 03197 03198 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03199 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 17> : tuple_type<A17> { 03200 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a17) {} 03201 typename tuple_type<A17>::reference get() { return m_x; } 03202 typename tuple_type<A17>::const_reference get() const { return m_x; } 03203 private: 03204 typename tuple_type<A17>::reference m_x; 03205 }; 03206 03207 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03208 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 18> : tuple_type<A18> { 03209 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a18) {} 03210 typename tuple_type<A18>::reference get() { return m_x; } 03211 typename tuple_type<A18>::const_reference get() const { return m_x; } 03212 private: 03213 typename tuple_type<A18>::reference m_x; 03214 }; 03215 03216 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03217 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 19> : tuple_type<A19> { 03218 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a19) {} 03219 typename tuple_type<A19>::reference get() { return m_x; } 03220 typename tuple_type<A19>::const_reference get() const { return m_x; } 03221 private: 03222 typename tuple_type<A19>::reference m_x; 03223 }; 03224 03225 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03226 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 20> : tuple_type<A20> { 03227 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a20) {} 03228 typename tuple_type<A20>::reference get() { return m_x; } 03229 typename tuple_type<A20>::const_reference get() const { return m_x; } 03230 private: 03231 typename tuple_type<A20>::reference m_x; 03232 }; 03233 03234 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03235 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 21> : tuple_type<A21> { 03236 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a21) {} 03237 typename tuple_type<A21>::reference get() { return m_x; } 03238 typename tuple_type<A21>::const_reference get() const { return m_x; } 03239 private: 03240 typename tuple_type<A21>::reference m_x; 03241 }; 03242 03243 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03244 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 22> : tuple_type<A22> { 03245 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a22) {} 03246 typename tuple_type<A22>::reference get() { return m_x; } 03247 typename tuple_type<A22>::const_reference get() const { return m_x; } 03248 private: 03249 typename tuple_type<A22>::reference m_x; 03250 }; 03251 03252 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03253 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 23> : tuple_type<A23> { 03254 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a23) {} 03255 typename tuple_type<A23>::reference get() { return m_x; } 03256 typename tuple_type<A23>::const_reference get() const { return m_x; } 03257 private: 03258 typename tuple_type<A23>::reference m_x; 03259 }; 03260 03261 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03262 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 24> : tuple_type<A24> { 03263 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a24) {} 03264 typename tuple_type<A24>::reference get() { return m_x; } 03265 typename tuple_type<A24>::const_reference get() const { return m_x; } 03266 private: 03267 typename tuple_type<A24>::reference m_x; 03268 }; 03269 03270 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 03271 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 25> : tuple_type<A25> { 03272 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a25) {} 03273 typename tuple_type<A25>::reference get() { return m_x; } 03274 typename tuple_type<A25>::const_reference get() const { return m_x; } 03275 private: 03276 typename tuple_type<A25>::reference m_x; 03277 }; 03278 03279 03280 03281 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03282 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 0> : tuple_type<A0> { 03283 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a0) {} 03284 typename tuple_type<A0>::reference get() { return m_x; } 03285 typename tuple_type<A0>::const_reference get() const { return m_x; } 03286 private: 03287 typename tuple_type<A0>::reference m_x; 03288 }; 03289 03290 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03291 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 1> : tuple_type<A1> { 03292 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a1) {} 03293 typename tuple_type<A1>::reference get() { return m_x; } 03294 typename tuple_type<A1>::const_reference get() const { return m_x; } 03295 private: 03296 typename tuple_type<A1>::reference m_x; 03297 }; 03298 03299 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03300 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 2> : tuple_type<A2> { 03301 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a2) {} 03302 typename tuple_type<A2>::reference get() { return m_x; } 03303 typename tuple_type<A2>::const_reference get() const { return m_x; } 03304 private: 03305 typename tuple_type<A2>::reference m_x; 03306 }; 03307 03308 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03309 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 3> : tuple_type<A3> { 03310 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a3) {} 03311 typename tuple_type<A3>::reference get() { return m_x; } 03312 typename tuple_type<A3>::const_reference get() const { return m_x; } 03313 private: 03314 typename tuple_type<A3>::reference m_x; 03315 }; 03316 03317 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03318 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 4> : tuple_type<A4> { 03319 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a4) {} 03320 typename tuple_type<A4>::reference get() { return m_x; } 03321 typename tuple_type<A4>::const_reference get() const { return m_x; } 03322 private: 03323 typename tuple_type<A4>::reference m_x; 03324 }; 03325 03326 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03327 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 5> : tuple_type<A5> { 03328 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a5) {} 03329 typename tuple_type<A5>::reference get() { return m_x; } 03330 typename tuple_type<A5>::const_reference get() const { return m_x; } 03331 private: 03332 typename tuple_type<A5>::reference m_x; 03333 }; 03334 03335 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03336 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 6> : tuple_type<A6> { 03337 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a6) {} 03338 typename tuple_type<A6>::reference get() { return m_x; } 03339 typename tuple_type<A6>::const_reference get() const { return m_x; } 03340 private: 03341 typename tuple_type<A6>::reference m_x; 03342 }; 03343 03344 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03345 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 7> : tuple_type<A7> { 03346 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a7) {} 03347 typename tuple_type<A7>::reference get() { return m_x; } 03348 typename tuple_type<A7>::const_reference get() const { return m_x; } 03349 private: 03350 typename tuple_type<A7>::reference m_x; 03351 }; 03352 03353 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03354 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 8> : tuple_type<A8> { 03355 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a8) {} 03356 typename tuple_type<A8>::reference get() { return m_x; } 03357 typename tuple_type<A8>::const_reference get() const { return m_x; } 03358 private: 03359 typename tuple_type<A8>::reference m_x; 03360 }; 03361 03362 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03363 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 9> : tuple_type<A9> { 03364 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a9) {} 03365 typename tuple_type<A9>::reference get() { return m_x; } 03366 typename tuple_type<A9>::const_reference get() const { return m_x; } 03367 private: 03368 typename tuple_type<A9>::reference m_x; 03369 }; 03370 03371 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03372 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 10> : tuple_type<A10> { 03373 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a10) {} 03374 typename tuple_type<A10>::reference get() { return m_x; } 03375 typename tuple_type<A10>::const_reference get() const { return m_x; } 03376 private: 03377 typename tuple_type<A10>::reference m_x; 03378 }; 03379 03380 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03381 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 11> : tuple_type<A11> { 03382 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a11) {} 03383 typename tuple_type<A11>::reference get() { return m_x; } 03384 typename tuple_type<A11>::const_reference get() const { return m_x; } 03385 private: 03386 typename tuple_type<A11>::reference m_x; 03387 }; 03388 03389 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03390 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 12> : tuple_type<A12> { 03391 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a12) {} 03392 typename tuple_type<A12>::reference get() { return m_x; } 03393 typename tuple_type<A12>::const_reference get() const { return m_x; } 03394 private: 03395 typename tuple_type<A12>::reference m_x; 03396 }; 03397 03398 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03399 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 13> : tuple_type<A13> { 03400 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a13) {} 03401 typename tuple_type<A13>::reference get() { return m_x; } 03402 typename tuple_type<A13>::const_reference get() const { return m_x; } 03403 private: 03404 typename tuple_type<A13>::reference m_x; 03405 }; 03406 03407 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03408 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 14> : tuple_type<A14> { 03409 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a14) {} 03410 typename tuple_type<A14>::reference get() { return m_x; } 03411 typename tuple_type<A14>::const_reference get() const { return m_x; } 03412 private: 03413 typename tuple_type<A14>::reference m_x; 03414 }; 03415 03416 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03417 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 15> : tuple_type<A15> { 03418 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a15) {} 03419 typename tuple_type<A15>::reference get() { return m_x; } 03420 typename tuple_type<A15>::const_reference get() const { return m_x; } 03421 private: 03422 typename tuple_type<A15>::reference m_x; 03423 }; 03424 03425 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03426 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 16> : tuple_type<A16> { 03427 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a16) {} 03428 typename tuple_type<A16>::reference get() { return m_x; } 03429 typename tuple_type<A16>::const_reference get() const { return m_x; } 03430 private: 03431 typename tuple_type<A16>::reference m_x; 03432 }; 03433 03434 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03435 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 17> : tuple_type<A17> { 03436 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a17) {} 03437 typename tuple_type<A17>::reference get() { return m_x; } 03438 typename tuple_type<A17>::const_reference get() const { return m_x; } 03439 private: 03440 typename tuple_type<A17>::reference m_x; 03441 }; 03442 03443 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03444 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 18> : tuple_type<A18> { 03445 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a18) {} 03446 typename tuple_type<A18>::reference get() { return m_x; } 03447 typename tuple_type<A18>::const_reference get() const { return m_x; } 03448 private: 03449 typename tuple_type<A18>::reference m_x; 03450 }; 03451 03452 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03453 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 19> : tuple_type<A19> { 03454 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a19) {} 03455 typename tuple_type<A19>::reference get() { return m_x; } 03456 typename tuple_type<A19>::const_reference get() const { return m_x; } 03457 private: 03458 typename tuple_type<A19>::reference m_x; 03459 }; 03460 03461 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03462 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 20> : tuple_type<A20> { 03463 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a20) {} 03464 typename tuple_type<A20>::reference get() { return m_x; } 03465 typename tuple_type<A20>::const_reference get() const { return m_x; } 03466 private: 03467 typename tuple_type<A20>::reference m_x; 03468 }; 03469 03470 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03471 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 21> : tuple_type<A21> { 03472 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a21) {} 03473 typename tuple_type<A21>::reference get() { return m_x; } 03474 typename tuple_type<A21>::const_reference get() const { return m_x; } 03475 private: 03476 typename tuple_type<A21>::reference m_x; 03477 }; 03478 03479 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03480 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 22> : tuple_type<A22> { 03481 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a22) {} 03482 typename tuple_type<A22>::reference get() { return m_x; } 03483 typename tuple_type<A22>::const_reference get() const { return m_x; } 03484 private: 03485 typename tuple_type<A22>::reference m_x; 03486 }; 03487 03488 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03489 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 23> : tuple_type<A23> { 03490 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a23) {} 03491 typename tuple_type<A23>::reference get() { return m_x; } 03492 typename tuple_type<A23>::const_reference get() const { return m_x; } 03493 private: 03494 typename tuple_type<A23>::reference m_x; 03495 }; 03496 03497 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03498 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 24> : tuple_type<A24> { 03499 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a24) {} 03500 typename tuple_type<A24>::reference get() { return m_x; } 03501 typename tuple_type<A24>::const_reference get() const { return m_x; } 03502 private: 03503 typename tuple_type<A24>::reference m_x; 03504 }; 03505 03506 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03507 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 25> : tuple_type<A25> { 03508 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a25) {} 03509 typename tuple_type<A25>::reference get() { return m_x; } 03510 typename tuple_type<A25>::const_reference get() const { return m_x; } 03511 private: 03512 typename tuple_type<A25>::reference m_x; 03513 }; 03514 03515 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 03516 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 26> : tuple_type<A26> { 03517 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a26) {} 03518 typename tuple_type<A26>::reference get() { return m_x; } 03519 typename tuple_type<A26>::const_reference get() const { return m_x; } 03520 private: 03521 typename tuple_type<A26>::reference m_x; 03522 }; 03523 03524 03525 03526 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03527 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 0> : tuple_type<A0> { 03528 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a0) {} 03529 typename tuple_type<A0>::reference get() { return m_x; } 03530 typename tuple_type<A0>::const_reference get() const { return m_x; } 03531 private: 03532 typename tuple_type<A0>::reference m_x; 03533 }; 03534 03535 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03536 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 1> : tuple_type<A1> { 03537 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a1) {} 03538 typename tuple_type<A1>::reference get() { return m_x; } 03539 typename tuple_type<A1>::const_reference get() const { return m_x; } 03540 private: 03541 typename tuple_type<A1>::reference m_x; 03542 }; 03543 03544 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03545 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 2> : tuple_type<A2> { 03546 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a2) {} 03547 typename tuple_type<A2>::reference get() { return m_x; } 03548 typename tuple_type<A2>::const_reference get() const { return m_x; } 03549 private: 03550 typename tuple_type<A2>::reference m_x; 03551 }; 03552 03553 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03554 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 3> : tuple_type<A3> { 03555 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a3) {} 03556 typename tuple_type<A3>::reference get() { return m_x; } 03557 typename tuple_type<A3>::const_reference get() const { return m_x; } 03558 private: 03559 typename tuple_type<A3>::reference m_x; 03560 }; 03561 03562 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03563 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 4> : tuple_type<A4> { 03564 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a4) {} 03565 typename tuple_type<A4>::reference get() { return m_x; } 03566 typename tuple_type<A4>::const_reference get() const { return m_x; } 03567 private: 03568 typename tuple_type<A4>::reference m_x; 03569 }; 03570 03571 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03572 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 5> : tuple_type<A5> { 03573 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a5) {} 03574 typename tuple_type<A5>::reference get() { return m_x; } 03575 typename tuple_type<A5>::const_reference get() const { return m_x; } 03576 private: 03577 typename tuple_type<A5>::reference m_x; 03578 }; 03579 03580 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03581 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 6> : tuple_type<A6> { 03582 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a6) {} 03583 typename tuple_type<A6>::reference get() { return m_x; } 03584 typename tuple_type<A6>::const_reference get() const { return m_x; } 03585 private: 03586 typename tuple_type<A6>::reference m_x; 03587 }; 03588 03589 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03590 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 7> : tuple_type<A7> { 03591 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a7) {} 03592 typename tuple_type<A7>::reference get() { return m_x; } 03593 typename tuple_type<A7>::const_reference get() const { return m_x; } 03594 private: 03595 typename tuple_type<A7>::reference m_x; 03596 }; 03597 03598 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03599 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 8> : tuple_type<A8> { 03600 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a8) {} 03601 typename tuple_type<A8>::reference get() { return m_x; } 03602 typename tuple_type<A8>::const_reference get() const { return m_x; } 03603 private: 03604 typename tuple_type<A8>::reference m_x; 03605 }; 03606 03607 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03608 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 9> : tuple_type<A9> { 03609 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a9) {} 03610 typename tuple_type<A9>::reference get() { return m_x; } 03611 typename tuple_type<A9>::const_reference get() const { return m_x; } 03612 private: 03613 typename tuple_type<A9>::reference m_x; 03614 }; 03615 03616 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03617 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 10> : tuple_type<A10> { 03618 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a10) {} 03619 typename tuple_type<A10>::reference get() { return m_x; } 03620 typename tuple_type<A10>::const_reference get() const { return m_x; } 03621 private: 03622 typename tuple_type<A10>::reference m_x; 03623 }; 03624 03625 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03626 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 11> : tuple_type<A11> { 03627 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a11) {} 03628 typename tuple_type<A11>::reference get() { return m_x; } 03629 typename tuple_type<A11>::const_reference get() const { return m_x; } 03630 private: 03631 typename tuple_type<A11>::reference m_x; 03632 }; 03633 03634 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03635 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 12> : tuple_type<A12> { 03636 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a12) {} 03637 typename tuple_type<A12>::reference get() { return m_x; } 03638 typename tuple_type<A12>::const_reference get() const { return m_x; } 03639 private: 03640 typename tuple_type<A12>::reference m_x; 03641 }; 03642 03643 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03644 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 13> : tuple_type<A13> { 03645 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a13) {} 03646 typename tuple_type<A13>::reference get() { return m_x; } 03647 typename tuple_type<A13>::const_reference get() const { return m_x; } 03648 private: 03649 typename tuple_type<A13>::reference m_x; 03650 }; 03651 03652 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03653 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 14> : tuple_type<A14> { 03654 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a14) {} 03655 typename tuple_type<A14>::reference get() { return m_x; } 03656 typename tuple_type<A14>::const_reference get() const { return m_x; } 03657 private: 03658 typename tuple_type<A14>::reference m_x; 03659 }; 03660 03661 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03662 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 15> : tuple_type<A15> { 03663 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a15) {} 03664 typename tuple_type<A15>::reference get() { return m_x; } 03665 typename tuple_type<A15>::const_reference get() const { return m_x; } 03666 private: 03667 typename tuple_type<A15>::reference m_x; 03668 }; 03669 03670 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03671 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 16> : tuple_type<A16> { 03672 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a16) {} 03673 typename tuple_type<A16>::reference get() { return m_x; } 03674 typename tuple_type<A16>::const_reference get() const { return m_x; } 03675 private: 03676 typename tuple_type<A16>::reference m_x; 03677 }; 03678 03679 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03680 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 17> : tuple_type<A17> { 03681 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a17) {} 03682 typename tuple_type<A17>::reference get() { return m_x; } 03683 typename tuple_type<A17>::const_reference get() const { return m_x; } 03684 private: 03685 typename tuple_type<A17>::reference m_x; 03686 }; 03687 03688 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03689 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 18> : tuple_type<A18> { 03690 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a18) {} 03691 typename tuple_type<A18>::reference get() { return m_x; } 03692 typename tuple_type<A18>::const_reference get() const { return m_x; } 03693 private: 03694 typename tuple_type<A18>::reference m_x; 03695 }; 03696 03697 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03698 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 19> : tuple_type<A19> { 03699 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a19) {} 03700 typename tuple_type<A19>::reference get() { return m_x; } 03701 typename tuple_type<A19>::const_reference get() const { return m_x; } 03702 private: 03703 typename tuple_type<A19>::reference m_x; 03704 }; 03705 03706 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03707 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 20> : tuple_type<A20> { 03708 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a20) {} 03709 typename tuple_type<A20>::reference get() { return m_x; } 03710 typename tuple_type<A20>::const_reference get() const { return m_x; } 03711 private: 03712 typename tuple_type<A20>::reference m_x; 03713 }; 03714 03715 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03716 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 21> : tuple_type<A21> { 03717 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a21) {} 03718 typename tuple_type<A21>::reference get() { return m_x; } 03719 typename tuple_type<A21>::const_reference get() const { return m_x; } 03720 private: 03721 typename tuple_type<A21>::reference m_x; 03722 }; 03723 03724 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03725 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 22> : tuple_type<A22> { 03726 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a22) {} 03727 typename tuple_type<A22>::reference get() { return m_x; } 03728 typename tuple_type<A22>::const_reference get() const { return m_x; } 03729 private: 03730 typename tuple_type<A22>::reference m_x; 03731 }; 03732 03733 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03734 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 23> : tuple_type<A23> { 03735 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a23) {} 03736 typename tuple_type<A23>::reference get() { return m_x; } 03737 typename tuple_type<A23>::const_reference get() const { return m_x; } 03738 private: 03739 typename tuple_type<A23>::reference m_x; 03740 }; 03741 03742 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03743 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 24> : tuple_type<A24> { 03744 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a24) {} 03745 typename tuple_type<A24>::reference get() { return m_x; } 03746 typename tuple_type<A24>::const_reference get() const { return m_x; } 03747 private: 03748 typename tuple_type<A24>::reference m_x; 03749 }; 03750 03751 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03752 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 25> : tuple_type<A25> { 03753 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a25) {} 03754 typename tuple_type<A25>::reference get() { return m_x; } 03755 typename tuple_type<A25>::const_reference get() const { return m_x; } 03756 private: 03757 typename tuple_type<A25>::reference m_x; 03758 }; 03759 03760 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03761 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 26> : tuple_type<A26> { 03762 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a26) {} 03763 typename tuple_type<A26>::reference get() { return m_x; } 03764 typename tuple_type<A26>::const_reference get() const { return m_x; } 03765 private: 03766 typename tuple_type<A26>::reference m_x; 03767 }; 03768 03769 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 03770 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 27> : tuple_type<A27> { 03771 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a27) {} 03772 typename tuple_type<A27>::reference get() { return m_x; } 03773 typename tuple_type<A27>::const_reference get() const { return m_x; } 03774 private: 03775 typename tuple_type<A27>::reference m_x; 03776 }; 03777 03778 03779 03780 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03781 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 0> : tuple_type<A0> { 03782 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a0) {} 03783 typename tuple_type<A0>::reference get() { return m_x; } 03784 typename tuple_type<A0>::const_reference get() const { return m_x; } 03785 private: 03786 typename tuple_type<A0>::reference m_x; 03787 }; 03788 03789 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03790 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 1> : tuple_type<A1> { 03791 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a1) {} 03792 typename tuple_type<A1>::reference get() { return m_x; } 03793 typename tuple_type<A1>::const_reference get() const { return m_x; } 03794 private: 03795 typename tuple_type<A1>::reference m_x; 03796 }; 03797 03798 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03799 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 2> : tuple_type<A2> { 03800 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a2) {} 03801 typename tuple_type<A2>::reference get() { return m_x; } 03802 typename tuple_type<A2>::const_reference get() const { return m_x; } 03803 private: 03804 typename tuple_type<A2>::reference m_x; 03805 }; 03806 03807 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03808 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 3> : tuple_type<A3> { 03809 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a3) {} 03810 typename tuple_type<A3>::reference get() { return m_x; } 03811 typename tuple_type<A3>::const_reference get() const { return m_x; } 03812 private: 03813 typename tuple_type<A3>::reference m_x; 03814 }; 03815 03816 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03817 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 4> : tuple_type<A4> { 03818 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a4) {} 03819 typename tuple_type<A4>::reference get() { return m_x; } 03820 typename tuple_type<A4>::const_reference get() const { return m_x; } 03821 private: 03822 typename tuple_type<A4>::reference m_x; 03823 }; 03824 03825 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03826 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 5> : tuple_type<A5> { 03827 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a5) {} 03828 typename tuple_type<A5>::reference get() { return m_x; } 03829 typename tuple_type<A5>::const_reference get() const { return m_x; } 03830 private: 03831 typename tuple_type<A5>::reference m_x; 03832 }; 03833 03834 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03835 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 6> : tuple_type<A6> { 03836 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a6) {} 03837 typename tuple_type<A6>::reference get() { return m_x; } 03838 typename tuple_type<A6>::const_reference get() const { return m_x; } 03839 private: 03840 typename tuple_type<A6>::reference m_x; 03841 }; 03842 03843 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03844 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 7> : tuple_type<A7> { 03845 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a7) {} 03846 typename tuple_type<A7>::reference get() { return m_x; } 03847 typename tuple_type<A7>::const_reference get() const { return m_x; } 03848 private: 03849 typename tuple_type<A7>::reference m_x; 03850 }; 03851 03852 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03853 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 8> : tuple_type<A8> { 03854 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a8) {} 03855 typename tuple_type<A8>::reference get() { return m_x; } 03856 typename tuple_type<A8>::const_reference get() const { return m_x; } 03857 private: 03858 typename tuple_type<A8>::reference m_x; 03859 }; 03860 03861 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03862 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 9> : tuple_type<A9> { 03863 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a9) {} 03864 typename tuple_type<A9>::reference get() { return m_x; } 03865 typename tuple_type<A9>::const_reference get() const { return m_x; } 03866 private: 03867 typename tuple_type<A9>::reference m_x; 03868 }; 03869 03870 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03871 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 10> : tuple_type<A10> { 03872 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a10) {} 03873 typename tuple_type<A10>::reference get() { return m_x; } 03874 typename tuple_type<A10>::const_reference get() const { return m_x; } 03875 private: 03876 typename tuple_type<A10>::reference m_x; 03877 }; 03878 03879 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03880 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 11> : tuple_type<A11> { 03881 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a11) {} 03882 typename tuple_type<A11>::reference get() { return m_x; } 03883 typename tuple_type<A11>::const_reference get() const { return m_x; } 03884 private: 03885 typename tuple_type<A11>::reference m_x; 03886 }; 03887 03888 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03889 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 12> : tuple_type<A12> { 03890 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a12) {} 03891 typename tuple_type<A12>::reference get() { return m_x; } 03892 typename tuple_type<A12>::const_reference get() const { return m_x; } 03893 private: 03894 typename tuple_type<A12>::reference m_x; 03895 }; 03896 03897 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03898 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 13> : tuple_type<A13> { 03899 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a13) {} 03900 typename tuple_type<A13>::reference get() { return m_x; } 03901 typename tuple_type<A13>::const_reference get() const { return m_x; } 03902 private: 03903 typename tuple_type<A13>::reference m_x; 03904 }; 03905 03906 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03907 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 14> : tuple_type<A14> { 03908 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a14) {} 03909 typename tuple_type<A14>::reference get() { return m_x; } 03910 typename tuple_type<A14>::const_reference get() const { return m_x; } 03911 private: 03912 typename tuple_type<A14>::reference m_x; 03913 }; 03914 03915 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03916 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 15> : tuple_type<A15> { 03917 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a15) {} 03918 typename tuple_type<A15>::reference get() { return m_x; } 03919 typename tuple_type<A15>::const_reference get() const { return m_x; } 03920 private: 03921 typename tuple_type<A15>::reference m_x; 03922 }; 03923 03924 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03925 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 16> : tuple_type<A16> { 03926 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a16) {} 03927 typename tuple_type<A16>::reference get() { return m_x; } 03928 typename tuple_type<A16>::const_reference get() const { return m_x; } 03929 private: 03930 typename tuple_type<A16>::reference m_x; 03931 }; 03932 03933 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03934 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 17> : tuple_type<A17> { 03935 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a17) {} 03936 typename tuple_type<A17>::reference get() { return m_x; } 03937 typename tuple_type<A17>::const_reference get() const { return m_x; } 03938 private: 03939 typename tuple_type<A17>::reference m_x; 03940 }; 03941 03942 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03943 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 18> : tuple_type<A18> { 03944 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a18) {} 03945 typename tuple_type<A18>::reference get() { return m_x; } 03946 typename tuple_type<A18>::const_reference get() const { return m_x; } 03947 private: 03948 typename tuple_type<A18>::reference m_x; 03949 }; 03950 03951 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03952 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 19> : tuple_type<A19> { 03953 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a19) {} 03954 typename tuple_type<A19>::reference get() { return m_x; } 03955 typename tuple_type<A19>::const_reference get() const { return m_x; } 03956 private: 03957 typename tuple_type<A19>::reference m_x; 03958 }; 03959 03960 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03961 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 20> : tuple_type<A20> { 03962 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a20) {} 03963 typename tuple_type<A20>::reference get() { return m_x; } 03964 typename tuple_type<A20>::const_reference get() const { return m_x; } 03965 private: 03966 typename tuple_type<A20>::reference m_x; 03967 }; 03968 03969 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03970 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 21> : tuple_type<A21> { 03971 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a21) {} 03972 typename tuple_type<A21>::reference get() { return m_x; } 03973 typename tuple_type<A21>::const_reference get() const { return m_x; } 03974 private: 03975 typename tuple_type<A21>::reference m_x; 03976 }; 03977 03978 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03979 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 22> : tuple_type<A22> { 03980 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a22) {} 03981 typename tuple_type<A22>::reference get() { return m_x; } 03982 typename tuple_type<A22>::const_reference get() const { return m_x; } 03983 private: 03984 typename tuple_type<A22>::reference m_x; 03985 }; 03986 03987 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03988 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 23> : tuple_type<A23> { 03989 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a23) {} 03990 typename tuple_type<A23>::reference get() { return m_x; } 03991 typename tuple_type<A23>::const_reference get() const { return m_x; } 03992 private: 03993 typename tuple_type<A23>::reference m_x; 03994 }; 03995 03996 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 03997 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 24> : tuple_type<A24> { 03998 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a24) {} 03999 typename tuple_type<A24>::reference get() { return m_x; } 04000 typename tuple_type<A24>::const_reference get() const { return m_x; } 04001 private: 04002 typename tuple_type<A24>::reference m_x; 04003 }; 04004 04005 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 04006 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 25> : tuple_type<A25> { 04007 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a25) {} 04008 typename tuple_type<A25>::reference get() { return m_x; } 04009 typename tuple_type<A25>::const_reference get() const { return m_x; } 04010 private: 04011 typename tuple_type<A25>::reference m_x; 04012 }; 04013 04014 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 04015 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 26> : tuple_type<A26> { 04016 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a26) {} 04017 typename tuple_type<A26>::reference get() { return m_x; } 04018 typename tuple_type<A26>::const_reference get() const { return m_x; } 04019 private: 04020 typename tuple_type<A26>::reference m_x; 04021 }; 04022 04023 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 04024 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 27> : tuple_type<A27> { 04025 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a27) {} 04026 typename tuple_type<A27>::reference get() { return m_x; } 04027 typename tuple_type<A27>::const_reference get() const { return m_x; } 04028 private: 04029 typename tuple_type<A27>::reference m_x; 04030 }; 04031 04032 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 04033 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 28> : tuple_type<A28> { 04034 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a28) {} 04035 typename tuple_type<A28>::reference get() { return m_x; } 04036 typename tuple_type<A28>::const_reference get() const { return m_x; } 04037 private: 04038 typename tuple_type<A28>::reference m_x; 04039 }; 04040 04041 04042 04043 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04044 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 0> : tuple_type<A0> { 04045 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a0) {} 04046 typename tuple_type<A0>::reference get() { return m_x; } 04047 typename tuple_type<A0>::const_reference get() const { return m_x; } 04048 private: 04049 typename tuple_type<A0>::reference m_x; 04050 }; 04051 04052 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04053 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 1> : tuple_type<A1> { 04054 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a1) {} 04055 typename tuple_type<A1>::reference get() { return m_x; } 04056 typename tuple_type<A1>::const_reference get() const { return m_x; } 04057 private: 04058 typename tuple_type<A1>::reference m_x; 04059 }; 04060 04061 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04062 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 2> : tuple_type<A2> { 04063 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a2) {} 04064 typename tuple_type<A2>::reference get() { return m_x; } 04065 typename tuple_type<A2>::const_reference get() const { return m_x; } 04066 private: 04067 typename tuple_type<A2>::reference m_x; 04068 }; 04069 04070 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04071 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 3> : tuple_type<A3> { 04072 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a3) {} 04073 typename tuple_type<A3>::reference get() { return m_x; } 04074 typename tuple_type<A3>::const_reference get() const { return m_x; } 04075 private: 04076 typename tuple_type<A3>::reference m_x; 04077 }; 04078 04079 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04080 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 4> : tuple_type<A4> { 04081 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a4) {} 04082 typename tuple_type<A4>::reference get() { return m_x; } 04083 typename tuple_type<A4>::const_reference get() const { return m_x; } 04084 private: 04085 typename tuple_type<A4>::reference m_x; 04086 }; 04087 04088 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04089 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 5> : tuple_type<A5> { 04090 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a5) {} 04091 typename tuple_type<A5>::reference get() { return m_x; } 04092 typename tuple_type<A5>::const_reference get() const { return m_x; } 04093 private: 04094 typename tuple_type<A5>::reference m_x; 04095 }; 04096 04097 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04098 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 6> : tuple_type<A6> { 04099 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a6) {} 04100 typename tuple_type<A6>::reference get() { return m_x; } 04101 typename tuple_type<A6>::const_reference get() const { return m_x; } 04102 private: 04103 typename tuple_type<A6>::reference m_x; 04104 }; 04105 04106 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04107 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 7> : tuple_type<A7> { 04108 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a7) {} 04109 typename tuple_type<A7>::reference get() { return m_x; } 04110 typename tuple_type<A7>::const_reference get() const { return m_x; } 04111 private: 04112 typename tuple_type<A7>::reference m_x; 04113 }; 04114 04115 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04116 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 8> : tuple_type<A8> { 04117 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a8) {} 04118 typename tuple_type<A8>::reference get() { return m_x; } 04119 typename tuple_type<A8>::const_reference get() const { return m_x; } 04120 private: 04121 typename tuple_type<A8>::reference m_x; 04122 }; 04123 04124 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04125 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 9> : tuple_type<A9> { 04126 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a9) {} 04127 typename tuple_type<A9>::reference get() { return m_x; } 04128 typename tuple_type<A9>::const_reference get() const { return m_x; } 04129 private: 04130 typename tuple_type<A9>::reference m_x; 04131 }; 04132 04133 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04134 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 10> : tuple_type<A10> { 04135 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a10) {} 04136 typename tuple_type<A10>::reference get() { return m_x; } 04137 typename tuple_type<A10>::const_reference get() const { return m_x; } 04138 private: 04139 typename tuple_type<A10>::reference m_x; 04140 }; 04141 04142 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04143 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 11> : tuple_type<A11> { 04144 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a11) {} 04145 typename tuple_type<A11>::reference get() { return m_x; } 04146 typename tuple_type<A11>::const_reference get() const { return m_x; } 04147 private: 04148 typename tuple_type<A11>::reference m_x; 04149 }; 04150 04151 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04152 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 12> : tuple_type<A12> { 04153 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a12) {} 04154 typename tuple_type<A12>::reference get() { return m_x; } 04155 typename tuple_type<A12>::const_reference get() const { return m_x; } 04156 private: 04157 typename tuple_type<A12>::reference m_x; 04158 }; 04159 04160 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04161 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 13> : tuple_type<A13> { 04162 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a13) {} 04163 typename tuple_type<A13>::reference get() { return m_x; } 04164 typename tuple_type<A13>::const_reference get() const { return m_x; } 04165 private: 04166 typename tuple_type<A13>::reference m_x; 04167 }; 04168 04169 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04170 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 14> : tuple_type<A14> { 04171 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a14) {} 04172 typename tuple_type<A14>::reference get() { return m_x; } 04173 typename tuple_type<A14>::const_reference get() const { return m_x; } 04174 private: 04175 typename tuple_type<A14>::reference m_x; 04176 }; 04177 04178 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04179 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 15> : tuple_type<A15> { 04180 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a15) {} 04181 typename tuple_type<A15>::reference get() { return m_x; } 04182 typename tuple_type<A15>::const_reference get() const { return m_x; } 04183 private: 04184 typename tuple_type<A15>::reference m_x; 04185 }; 04186 04187 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04188 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 16> : tuple_type<A16> { 04189 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a16) {} 04190 typename tuple_type<A16>::reference get() { return m_x; } 04191 typename tuple_type<A16>::const_reference get() const { return m_x; } 04192 private: 04193 typename tuple_type<A16>::reference m_x; 04194 }; 04195 04196 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04197 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 17> : tuple_type<A17> { 04198 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a17) {} 04199 typename tuple_type<A17>::reference get() { return m_x; } 04200 typename tuple_type<A17>::const_reference get() const { return m_x; } 04201 private: 04202 typename tuple_type<A17>::reference m_x; 04203 }; 04204 04205 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04206 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 18> : tuple_type<A18> { 04207 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a18) {} 04208 typename tuple_type<A18>::reference get() { return m_x; } 04209 typename tuple_type<A18>::const_reference get() const { return m_x; } 04210 private: 04211 typename tuple_type<A18>::reference m_x; 04212 }; 04213 04214 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04215 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 19> : tuple_type<A19> { 04216 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a19) {} 04217 typename tuple_type<A19>::reference get() { return m_x; } 04218 typename tuple_type<A19>::const_reference get() const { return m_x; } 04219 private: 04220 typename tuple_type<A19>::reference m_x; 04221 }; 04222 04223 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04224 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 20> : tuple_type<A20> { 04225 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a20) {} 04226 typename tuple_type<A20>::reference get() { return m_x; } 04227 typename tuple_type<A20>::const_reference get() const { return m_x; } 04228 private: 04229 typename tuple_type<A20>::reference m_x; 04230 }; 04231 04232 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04233 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 21> : tuple_type<A21> { 04234 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a21) {} 04235 typename tuple_type<A21>::reference get() { return m_x; } 04236 typename tuple_type<A21>::const_reference get() const { return m_x; } 04237 private: 04238 typename tuple_type<A21>::reference m_x; 04239 }; 04240 04241 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04242 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 22> : tuple_type<A22> { 04243 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a22) {} 04244 typename tuple_type<A22>::reference get() { return m_x; } 04245 typename tuple_type<A22>::const_reference get() const { return m_x; } 04246 private: 04247 typename tuple_type<A22>::reference m_x; 04248 }; 04249 04250 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04251 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 23> : tuple_type<A23> { 04252 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a23) {} 04253 typename tuple_type<A23>::reference get() { return m_x; } 04254 typename tuple_type<A23>::const_reference get() const { return m_x; } 04255 private: 04256 typename tuple_type<A23>::reference m_x; 04257 }; 04258 04259 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04260 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 24> : tuple_type<A24> { 04261 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a24) {} 04262 typename tuple_type<A24>::reference get() { return m_x; } 04263 typename tuple_type<A24>::const_reference get() const { return m_x; } 04264 private: 04265 typename tuple_type<A24>::reference m_x; 04266 }; 04267 04268 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04269 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 25> : tuple_type<A25> { 04270 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a25) {} 04271 typename tuple_type<A25>::reference get() { return m_x; } 04272 typename tuple_type<A25>::const_reference get() const { return m_x; } 04273 private: 04274 typename tuple_type<A25>::reference m_x; 04275 }; 04276 04277 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04278 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 26> : tuple_type<A26> { 04279 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a26) {} 04280 typename tuple_type<A26>::reference get() { return m_x; } 04281 typename tuple_type<A26>::const_reference get() const { return m_x; } 04282 private: 04283 typename tuple_type<A26>::reference m_x; 04284 }; 04285 04286 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04287 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 27> : tuple_type<A27> { 04288 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a27) {} 04289 typename tuple_type<A27>::reference get() { return m_x; } 04290 typename tuple_type<A27>::const_reference get() const { return m_x; } 04291 private: 04292 typename tuple_type<A27>::reference m_x; 04293 }; 04294 04295 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04296 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 28> : tuple_type<A28> { 04297 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a28) {} 04298 typename tuple_type<A28>::reference get() { return m_x; } 04299 typename tuple_type<A28>::const_reference get() const { return m_x; } 04300 private: 04301 typename tuple_type<A28>::reference m_x; 04302 }; 04303 04304 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 04305 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 29> : tuple_type<A29> { 04306 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a29) {} 04307 typename tuple_type<A29>::reference get() { return m_x; } 04308 typename tuple_type<A29>::const_reference get() const { return m_x; } 04309 private: 04310 typename tuple_type<A29>::reference m_x; 04311 }; 04312 04313 04314 04315 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04316 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 0> : tuple_type<A0> { 04317 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a0) {} 04318 typename tuple_type<A0>::reference get() { return m_x; } 04319 typename tuple_type<A0>::const_reference get() const { return m_x; } 04320 private: 04321 typename tuple_type<A0>::reference m_x; 04322 }; 04323 04324 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04325 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 1> : tuple_type<A1> { 04326 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a1) {} 04327 typename tuple_type<A1>::reference get() { return m_x; } 04328 typename tuple_type<A1>::const_reference get() const { return m_x; } 04329 private: 04330 typename tuple_type<A1>::reference m_x; 04331 }; 04332 04333 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04334 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 2> : tuple_type<A2> { 04335 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a2) {} 04336 typename tuple_type<A2>::reference get() { return m_x; } 04337 typename tuple_type<A2>::const_reference get() const { return m_x; } 04338 private: 04339 typename tuple_type<A2>::reference m_x; 04340 }; 04341 04342 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04343 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 3> : tuple_type<A3> { 04344 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a3) {} 04345 typename tuple_type<A3>::reference get() { return m_x; } 04346 typename tuple_type<A3>::const_reference get() const { return m_x; } 04347 private: 04348 typename tuple_type<A3>::reference m_x; 04349 }; 04350 04351 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04352 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 4> : tuple_type<A4> { 04353 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a4) {} 04354 typename tuple_type<A4>::reference get() { return m_x; } 04355 typename tuple_type<A4>::const_reference get() const { return m_x; } 04356 private: 04357 typename tuple_type<A4>::reference m_x; 04358 }; 04359 04360 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04361 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 5> : tuple_type<A5> { 04362 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a5) {} 04363 typename tuple_type<A5>::reference get() { return m_x; } 04364 typename tuple_type<A5>::const_reference get() const { return m_x; } 04365 private: 04366 typename tuple_type<A5>::reference m_x; 04367 }; 04368 04369 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04370 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 6> : tuple_type<A6> { 04371 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a6) {} 04372 typename tuple_type<A6>::reference get() { return m_x; } 04373 typename tuple_type<A6>::const_reference get() const { return m_x; } 04374 private: 04375 typename tuple_type<A6>::reference m_x; 04376 }; 04377 04378 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04379 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 7> : tuple_type<A7> { 04380 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a7) {} 04381 typename tuple_type<A7>::reference get() { return m_x; } 04382 typename tuple_type<A7>::const_reference get() const { return m_x; } 04383 private: 04384 typename tuple_type<A7>::reference m_x; 04385 }; 04386 04387 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04388 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 8> : tuple_type<A8> { 04389 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a8) {} 04390 typename tuple_type<A8>::reference get() { return m_x; } 04391 typename tuple_type<A8>::const_reference get() const { return m_x; } 04392 private: 04393 typename tuple_type<A8>::reference m_x; 04394 }; 04395 04396 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04397 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 9> : tuple_type<A9> { 04398 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a9) {} 04399 typename tuple_type<A9>::reference get() { return m_x; } 04400 typename tuple_type<A9>::const_reference get() const { return m_x; } 04401 private: 04402 typename tuple_type<A9>::reference m_x; 04403 }; 04404 04405 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04406 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 10> : tuple_type<A10> { 04407 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a10) {} 04408 typename tuple_type<A10>::reference get() { return m_x; } 04409 typename tuple_type<A10>::const_reference get() const { return m_x; } 04410 private: 04411 typename tuple_type<A10>::reference m_x; 04412 }; 04413 04414 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04415 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 11> : tuple_type<A11> { 04416 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a11) {} 04417 typename tuple_type<A11>::reference get() { return m_x; } 04418 typename tuple_type<A11>::const_reference get() const { return m_x; } 04419 private: 04420 typename tuple_type<A11>::reference m_x; 04421 }; 04422 04423 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04424 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 12> : tuple_type<A12> { 04425 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a12) {} 04426 typename tuple_type<A12>::reference get() { return m_x; } 04427 typename tuple_type<A12>::const_reference get() const { return m_x; } 04428 private: 04429 typename tuple_type<A12>::reference m_x; 04430 }; 04431 04432 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04433 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 13> : tuple_type<A13> { 04434 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a13) {} 04435 typename tuple_type<A13>::reference get() { return m_x; } 04436 typename tuple_type<A13>::const_reference get() const { return m_x; } 04437 private: 04438 typename tuple_type<A13>::reference m_x; 04439 }; 04440 04441 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04442 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 14> : tuple_type<A14> { 04443 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a14) {} 04444 typename tuple_type<A14>::reference get() { return m_x; } 04445 typename tuple_type<A14>::const_reference get() const { return m_x; } 04446 private: 04447 typename tuple_type<A14>::reference m_x; 04448 }; 04449 04450 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04451 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 15> : tuple_type<A15> { 04452 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a15) {} 04453 typename tuple_type<A15>::reference get() { return m_x; } 04454 typename tuple_type<A15>::const_reference get() const { return m_x; } 04455 private: 04456 typename tuple_type<A15>::reference m_x; 04457 }; 04458 04459 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04460 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 16> : tuple_type<A16> { 04461 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a16) {} 04462 typename tuple_type<A16>::reference get() { return m_x; } 04463 typename tuple_type<A16>::const_reference get() const { return m_x; } 04464 private: 04465 typename tuple_type<A16>::reference m_x; 04466 }; 04467 04468 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04469 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 17> : tuple_type<A17> { 04470 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a17) {} 04471 typename tuple_type<A17>::reference get() { return m_x; } 04472 typename tuple_type<A17>::const_reference get() const { return m_x; } 04473 private: 04474 typename tuple_type<A17>::reference m_x; 04475 }; 04476 04477 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04478 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 18> : tuple_type<A18> { 04479 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a18) {} 04480 typename tuple_type<A18>::reference get() { return m_x; } 04481 typename tuple_type<A18>::const_reference get() const { return m_x; } 04482 private: 04483 typename tuple_type<A18>::reference m_x; 04484 }; 04485 04486 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04487 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 19> : tuple_type<A19> { 04488 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a19) {} 04489 typename tuple_type<A19>::reference get() { return m_x; } 04490 typename tuple_type<A19>::const_reference get() const { return m_x; } 04491 private: 04492 typename tuple_type<A19>::reference m_x; 04493 }; 04494 04495 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04496 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 20> : tuple_type<A20> { 04497 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a20) {} 04498 typename tuple_type<A20>::reference get() { return m_x; } 04499 typename tuple_type<A20>::const_reference get() const { return m_x; } 04500 private: 04501 typename tuple_type<A20>::reference m_x; 04502 }; 04503 04504 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04505 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 21> : tuple_type<A21> { 04506 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a21) {} 04507 typename tuple_type<A21>::reference get() { return m_x; } 04508 typename tuple_type<A21>::const_reference get() const { return m_x; } 04509 private: 04510 typename tuple_type<A21>::reference m_x; 04511 }; 04512 04513 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04514 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 22> : tuple_type<A22> { 04515 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a22) {} 04516 typename tuple_type<A22>::reference get() { return m_x; } 04517 typename tuple_type<A22>::const_reference get() const { return m_x; } 04518 private: 04519 typename tuple_type<A22>::reference m_x; 04520 }; 04521 04522 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04523 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 23> : tuple_type<A23> { 04524 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a23) {} 04525 typename tuple_type<A23>::reference get() { return m_x; } 04526 typename tuple_type<A23>::const_reference get() const { return m_x; } 04527 private: 04528 typename tuple_type<A23>::reference m_x; 04529 }; 04530 04531 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04532 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 24> : tuple_type<A24> { 04533 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a24) {} 04534 typename tuple_type<A24>::reference get() { return m_x; } 04535 typename tuple_type<A24>::const_reference get() const { return m_x; } 04536 private: 04537 typename tuple_type<A24>::reference m_x; 04538 }; 04539 04540 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04541 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 25> : tuple_type<A25> { 04542 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a25) {} 04543 typename tuple_type<A25>::reference get() { return m_x; } 04544 typename tuple_type<A25>::const_reference get() const { return m_x; } 04545 private: 04546 typename tuple_type<A25>::reference m_x; 04547 }; 04548 04549 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04550 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 26> : tuple_type<A26> { 04551 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a26) {} 04552 typename tuple_type<A26>::reference get() { return m_x; } 04553 typename tuple_type<A26>::const_reference get() const { return m_x; } 04554 private: 04555 typename tuple_type<A26>::reference m_x; 04556 }; 04557 04558 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04559 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 27> : tuple_type<A27> { 04560 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a27) {} 04561 typename tuple_type<A27>::reference get() { return m_x; } 04562 typename tuple_type<A27>::const_reference get() const { return m_x; } 04563 private: 04564 typename tuple_type<A27>::reference m_x; 04565 }; 04566 04567 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04568 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 28> : tuple_type<A28> { 04569 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a28) {} 04570 typename tuple_type<A28>::reference get() { return m_x; } 04571 typename tuple_type<A28>::const_reference get() const { return m_x; } 04572 private: 04573 typename tuple_type<A28>::reference m_x; 04574 }; 04575 04576 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04577 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 29> : tuple_type<A29> { 04578 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a29) {} 04579 typename tuple_type<A29>::reference get() { return m_x; } 04580 typename tuple_type<A29>::const_reference get() const { return m_x; } 04581 private: 04582 typename tuple_type<A29>::reference m_x; 04583 }; 04584 04585 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 04586 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 30> : tuple_type<A30> { 04587 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a30) {} 04588 typename tuple_type<A30>::reference get() { return m_x; } 04589 typename tuple_type<A30>::const_reference get() const { return m_x; } 04590 private: 04591 typename tuple_type<A30>::reference m_x; 04592 }; 04593 04594 04595 04596 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04597 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 0> : tuple_type<A0> { 04598 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a0) {} 04599 typename tuple_type<A0>::reference get() { return m_x; } 04600 typename tuple_type<A0>::const_reference get() const { return m_x; } 04601 private: 04602 typename tuple_type<A0>::reference m_x; 04603 }; 04604 04605 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04606 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 1> : tuple_type<A1> { 04607 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a1) {} 04608 typename tuple_type<A1>::reference get() { return m_x; } 04609 typename tuple_type<A1>::const_reference get() const { return m_x; } 04610 private: 04611 typename tuple_type<A1>::reference m_x; 04612 }; 04613 04614 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04615 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 2> : tuple_type<A2> { 04616 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a2) {} 04617 typename tuple_type<A2>::reference get() { return m_x; } 04618 typename tuple_type<A2>::const_reference get() const { return m_x; } 04619 private: 04620 typename tuple_type<A2>::reference m_x; 04621 }; 04622 04623 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04624 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 3> : tuple_type<A3> { 04625 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a3) {} 04626 typename tuple_type<A3>::reference get() { return m_x; } 04627 typename tuple_type<A3>::const_reference get() const { return m_x; } 04628 private: 04629 typename tuple_type<A3>::reference m_x; 04630 }; 04631 04632 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04633 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 4> : tuple_type<A4> { 04634 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a4) {} 04635 typename tuple_type<A4>::reference get() { return m_x; } 04636 typename tuple_type<A4>::const_reference get() const { return m_x; } 04637 private: 04638 typename tuple_type<A4>::reference m_x; 04639 }; 04640 04641 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04642 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 5> : tuple_type<A5> { 04643 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a5) {} 04644 typename tuple_type<A5>::reference get() { return m_x; } 04645 typename tuple_type<A5>::const_reference get() const { return m_x; } 04646 private: 04647 typename tuple_type<A5>::reference m_x; 04648 }; 04649 04650 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04651 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 6> : tuple_type<A6> { 04652 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a6) {} 04653 typename tuple_type<A6>::reference get() { return m_x; } 04654 typename tuple_type<A6>::const_reference get() const { return m_x; } 04655 private: 04656 typename tuple_type<A6>::reference m_x; 04657 }; 04658 04659 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04660 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 7> : tuple_type<A7> { 04661 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a7) {} 04662 typename tuple_type<A7>::reference get() { return m_x; } 04663 typename tuple_type<A7>::const_reference get() const { return m_x; } 04664 private: 04665 typename tuple_type<A7>::reference m_x; 04666 }; 04667 04668 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04669 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 8> : tuple_type<A8> { 04670 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a8) {} 04671 typename tuple_type<A8>::reference get() { return m_x; } 04672 typename tuple_type<A8>::const_reference get() const { return m_x; } 04673 private: 04674 typename tuple_type<A8>::reference m_x; 04675 }; 04676 04677 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04678 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 9> : tuple_type<A9> { 04679 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a9) {} 04680 typename tuple_type<A9>::reference get() { return m_x; } 04681 typename tuple_type<A9>::const_reference get() const { return m_x; } 04682 private: 04683 typename tuple_type<A9>::reference m_x; 04684 }; 04685 04686 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04687 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 10> : tuple_type<A10> { 04688 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a10) {} 04689 typename tuple_type<A10>::reference get() { return m_x; } 04690 typename tuple_type<A10>::const_reference get() const { return m_x; } 04691 private: 04692 typename tuple_type<A10>::reference m_x; 04693 }; 04694 04695 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04696 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 11> : tuple_type<A11> { 04697 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a11) {} 04698 typename tuple_type<A11>::reference get() { return m_x; } 04699 typename tuple_type<A11>::const_reference get() const { return m_x; } 04700 private: 04701 typename tuple_type<A11>::reference m_x; 04702 }; 04703 04704 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04705 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 12> : tuple_type<A12> { 04706 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a12) {} 04707 typename tuple_type<A12>::reference get() { return m_x; } 04708 typename tuple_type<A12>::const_reference get() const { return m_x; } 04709 private: 04710 typename tuple_type<A12>::reference m_x; 04711 }; 04712 04713 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04714 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 13> : tuple_type<A13> { 04715 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a13) {} 04716 typename tuple_type<A13>::reference get() { return m_x; } 04717 typename tuple_type<A13>::const_reference get() const { return m_x; } 04718 private: 04719 typename tuple_type<A13>::reference m_x; 04720 }; 04721 04722 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04723 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 14> : tuple_type<A14> { 04724 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a14) {} 04725 typename tuple_type<A14>::reference get() { return m_x; } 04726 typename tuple_type<A14>::const_reference get() const { return m_x; } 04727 private: 04728 typename tuple_type<A14>::reference m_x; 04729 }; 04730 04731 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04732 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 15> : tuple_type<A15> { 04733 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a15) {} 04734 typename tuple_type<A15>::reference get() { return m_x; } 04735 typename tuple_type<A15>::const_reference get() const { return m_x; } 04736 private: 04737 typename tuple_type<A15>::reference m_x; 04738 }; 04739 04740 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04741 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 16> : tuple_type<A16> { 04742 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a16) {} 04743 typename tuple_type<A16>::reference get() { return m_x; } 04744 typename tuple_type<A16>::const_reference get() const { return m_x; } 04745 private: 04746 typename tuple_type<A16>::reference m_x; 04747 }; 04748 04749 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04750 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 17> : tuple_type<A17> { 04751 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a17) {} 04752 typename tuple_type<A17>::reference get() { return m_x; } 04753 typename tuple_type<A17>::const_reference get() const { return m_x; } 04754 private: 04755 typename tuple_type<A17>::reference m_x; 04756 }; 04757 04758 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04759 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 18> : tuple_type<A18> { 04760 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a18) {} 04761 typename tuple_type<A18>::reference get() { return m_x; } 04762 typename tuple_type<A18>::const_reference get() const { return m_x; } 04763 private: 04764 typename tuple_type<A18>::reference m_x; 04765 }; 04766 04767 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04768 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 19> : tuple_type<A19> { 04769 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a19) {} 04770 typename tuple_type<A19>::reference get() { return m_x; } 04771 typename tuple_type<A19>::const_reference get() const { return m_x; } 04772 private: 04773 typename tuple_type<A19>::reference m_x; 04774 }; 04775 04776 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04777 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 20> : tuple_type<A20> { 04778 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a20) {} 04779 typename tuple_type<A20>::reference get() { return m_x; } 04780 typename tuple_type<A20>::const_reference get() const { return m_x; } 04781 private: 04782 typename tuple_type<A20>::reference m_x; 04783 }; 04784 04785 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04786 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 21> : tuple_type<A21> { 04787 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a21) {} 04788 typename tuple_type<A21>::reference get() { return m_x; } 04789 typename tuple_type<A21>::const_reference get() const { return m_x; } 04790 private: 04791 typename tuple_type<A21>::reference m_x; 04792 }; 04793 04794 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04795 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 22> : tuple_type<A22> { 04796 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a22) {} 04797 typename tuple_type<A22>::reference get() { return m_x; } 04798 typename tuple_type<A22>::const_reference get() const { return m_x; } 04799 private: 04800 typename tuple_type<A22>::reference m_x; 04801 }; 04802 04803 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04804 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 23> : tuple_type<A23> { 04805 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a23) {} 04806 typename tuple_type<A23>::reference get() { return m_x; } 04807 typename tuple_type<A23>::const_reference get() const { return m_x; } 04808 private: 04809 typename tuple_type<A23>::reference m_x; 04810 }; 04811 04812 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04813 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 24> : tuple_type<A24> { 04814 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a24) {} 04815 typename tuple_type<A24>::reference get() { return m_x; } 04816 typename tuple_type<A24>::const_reference get() const { return m_x; } 04817 private: 04818 typename tuple_type<A24>::reference m_x; 04819 }; 04820 04821 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04822 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 25> : tuple_type<A25> { 04823 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a25) {} 04824 typename tuple_type<A25>::reference get() { return m_x; } 04825 typename tuple_type<A25>::const_reference get() const { return m_x; } 04826 private: 04827 typename tuple_type<A25>::reference m_x; 04828 }; 04829 04830 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04831 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 26> : tuple_type<A26> { 04832 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a26) {} 04833 typename tuple_type<A26>::reference get() { return m_x; } 04834 typename tuple_type<A26>::const_reference get() const { return m_x; } 04835 private: 04836 typename tuple_type<A26>::reference m_x; 04837 }; 04838 04839 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04840 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 27> : tuple_type<A27> { 04841 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a27) {} 04842 typename tuple_type<A27>::reference get() { return m_x; } 04843 typename tuple_type<A27>::const_reference get() const { return m_x; } 04844 private: 04845 typename tuple_type<A27>::reference m_x; 04846 }; 04847 04848 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04849 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 28> : tuple_type<A28> { 04850 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a28) {} 04851 typename tuple_type<A28>::reference get() { return m_x; } 04852 typename tuple_type<A28>::const_reference get() const { return m_x; } 04853 private: 04854 typename tuple_type<A28>::reference m_x; 04855 }; 04856 04857 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04858 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 29> : tuple_type<A29> { 04859 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a29) {} 04860 typename tuple_type<A29>::reference get() { return m_x; } 04861 typename tuple_type<A29>::const_reference get() const { return m_x; } 04862 private: 04863 typename tuple_type<A29>::reference m_x; 04864 }; 04865 04866 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04867 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 30> : tuple_type<A30> { 04868 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a30) {} 04869 typename tuple_type<A30>::reference get() { return m_x; } 04870 typename tuple_type<A30>::const_reference get() const { return m_x; } 04871 private: 04872 typename tuple_type<A30>::reference m_x; 04873 }; 04874 04875 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 04876 struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 31> : tuple_type<A31> { 04877 tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a31) {} 04878 typename tuple_type<A31>::reference get() { return m_x; } 04879 typename tuple_type<A31>::const_reference get() const { return m_x; } 04880 private: 04881 typename tuple_type<A31>::reference m_x; 04882 }; 04883 04884 04885 04886 04887 04888 template <typename A0> 04889 struct const_tuple_element<tuple<A0>, 0> : tuple_type<A0> { 04890 const_tuple_element(const tuple<A0>& x) : m_x(x.a0) {} 04891 typename tuple_type<A0>::const_reference get() const { return m_x; } 04892 private: 04893 typename tuple_type<A0>::const_reference m_x; 04894 }; 04895 04896 04897 04898 template <typename A0, typename A1> 04899 struct const_tuple_element<tuple<A0, A1>, 0> : tuple_type<A0> { 04900 const_tuple_element(const tuple<A0, A1>& x) : m_x(x.a0) {} 04901 typename tuple_type<A0>::const_reference get() const { return m_x; } 04902 private: 04903 typename tuple_type<A0>::const_reference m_x; 04904 }; 04905 04906 template <typename A0, typename A1> 04907 struct const_tuple_element<tuple<A0, A1>, 1> : tuple_type<A1> { 04908 const_tuple_element(const tuple<A0, A1>& x) : m_x(x.a1) {} 04909 typename tuple_type<A1>::const_reference get() const { return m_x; } 04910 private: 04911 typename tuple_type<A1>::const_reference m_x; 04912 }; 04913 04914 04915 04916 template <typename A0, typename A1, typename A2> 04917 struct const_tuple_element<tuple<A0, A1, A2>, 0> : tuple_type<A0> { 04918 const_tuple_element(const tuple<A0, A1, A2>& x) : m_x(x.a0) {} 04919 typename tuple_type<A0>::const_reference get() const { return m_x; } 04920 private: 04921 typename tuple_type<A0>::const_reference m_x; 04922 }; 04923 04924 template <typename A0, typename A1, typename A2> 04925 struct const_tuple_element<tuple<A0, A1, A2>, 1> : tuple_type<A1> { 04926 const_tuple_element(const tuple<A0, A1, A2>& x) : m_x(x.a1) {} 04927 typename tuple_type<A1>::const_reference get() const { return m_x; } 04928 private: 04929 typename tuple_type<A1>::const_reference m_x; 04930 }; 04931 04932 template <typename A0, typename A1, typename A2> 04933 struct const_tuple_element<tuple<A0, A1, A2>, 2> : tuple_type<A2> { 04934 const_tuple_element(const tuple<A0, A1, A2>& x) : m_x(x.a2) {} 04935 typename tuple_type<A2>::const_reference get() const { return m_x; } 04936 private: 04937 typename tuple_type<A2>::const_reference m_x; 04938 }; 04939 04940 04941 04942 template <typename A0, typename A1, typename A2, typename A3> 04943 struct const_tuple_element<tuple<A0, A1, A2, A3>, 0> : tuple_type<A0> { 04944 const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a0) {} 04945 typename tuple_type<A0>::const_reference get() const { return m_x; } 04946 private: 04947 typename tuple_type<A0>::const_reference m_x; 04948 }; 04949 04950 template <typename A0, typename A1, typename A2, typename A3> 04951 struct const_tuple_element<tuple<A0, A1, A2, A3>, 1> : tuple_type<A1> { 04952 const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a1) {} 04953 typename tuple_type<A1>::const_reference get() const { return m_x; } 04954 private: 04955 typename tuple_type<A1>::const_reference m_x; 04956 }; 04957 04958 template <typename A0, typename A1, typename A2, typename A3> 04959 struct const_tuple_element<tuple<A0, A1, A2, A3>, 2> : tuple_type<A2> { 04960 const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a2) {} 04961 typename tuple_type<A2>::const_reference get() const { return m_x; } 04962 private: 04963 typename tuple_type<A2>::const_reference m_x; 04964 }; 04965 04966 template <typename A0, typename A1, typename A2, typename A3> 04967 struct const_tuple_element<tuple<A0, A1, A2, A3>, 3> : tuple_type<A3> { 04968 const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a3) {} 04969 typename tuple_type<A3>::const_reference get() const { return m_x; } 04970 private: 04971 typename tuple_type<A3>::const_reference m_x; 04972 }; 04973 04974 04975 04976 template <typename A0, typename A1, typename A2, typename A3, typename A4> 04977 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 0> : tuple_type<A0> { 04978 const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a0) {} 04979 typename tuple_type<A0>::const_reference get() const { return m_x; } 04980 private: 04981 typename tuple_type<A0>::const_reference m_x; 04982 }; 04983 04984 template <typename A0, typename A1, typename A2, typename A3, typename A4> 04985 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 1> : tuple_type<A1> { 04986 const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a1) {} 04987 typename tuple_type<A1>::const_reference get() const { return m_x; } 04988 private: 04989 typename tuple_type<A1>::const_reference m_x; 04990 }; 04991 04992 template <typename A0, typename A1, typename A2, typename A3, typename A4> 04993 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 2> : tuple_type<A2> { 04994 const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a2) {} 04995 typename tuple_type<A2>::const_reference get() const { return m_x; } 04996 private: 04997 typename tuple_type<A2>::const_reference m_x; 04998 }; 04999 05000 template <typename A0, typename A1, typename A2, typename A3, typename A4> 05001 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 3> : tuple_type<A3> { 05002 const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a3) {} 05003 typename tuple_type<A3>::const_reference get() const { return m_x; } 05004 private: 05005 typename tuple_type<A3>::const_reference m_x; 05006 }; 05007 05008 template <typename A0, typename A1, typename A2, typename A3, typename A4> 05009 struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 4> : tuple_type<A4> { 05010 const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a4) {} 05011 typename tuple_type<A4>::const_reference get() const { return m_x; } 05012 private: 05013 typename tuple_type<A4>::const_reference m_x; 05014 }; 05015 05016 05017 05018 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 05019 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 0> : tuple_type<A0> { 05020 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a0) {} 05021 typename tuple_type<A0>::const_reference get() const { return m_x; } 05022 private: 05023 typename tuple_type<A0>::const_reference m_x; 05024 }; 05025 05026 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 05027 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 1> : tuple_type<A1> { 05028 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a1) {} 05029 typename tuple_type<A1>::const_reference get() const { return m_x; } 05030 private: 05031 typename tuple_type<A1>::const_reference m_x; 05032 }; 05033 05034 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 05035 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 2> : tuple_type<A2> { 05036 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a2) {} 05037 typename tuple_type<A2>::const_reference get() const { return m_x; } 05038 private: 05039 typename tuple_type<A2>::const_reference m_x; 05040 }; 05041 05042 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 05043 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 3> : tuple_type<A3> { 05044 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a3) {} 05045 typename tuple_type<A3>::const_reference get() const { return m_x; } 05046 private: 05047 typename tuple_type<A3>::const_reference m_x; 05048 }; 05049 05050 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 05051 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 4> : tuple_type<A4> { 05052 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a4) {} 05053 typename tuple_type<A4>::const_reference get() const { return m_x; } 05054 private: 05055 typename tuple_type<A4>::const_reference m_x; 05056 }; 05057 05058 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 05059 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 5> : tuple_type<A5> { 05060 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a5) {} 05061 typename tuple_type<A5>::const_reference get() const { return m_x; } 05062 private: 05063 typename tuple_type<A5>::const_reference m_x; 05064 }; 05065 05066 05067 05068 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 05069 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 0> : tuple_type<A0> { 05070 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a0) {} 05071 typename tuple_type<A0>::const_reference get() const { return m_x; } 05072 private: 05073 typename tuple_type<A0>::const_reference m_x; 05074 }; 05075 05076 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 05077 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 1> : tuple_type<A1> { 05078 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a1) {} 05079 typename tuple_type<A1>::const_reference get() const { return m_x; } 05080 private: 05081 typename tuple_type<A1>::const_reference m_x; 05082 }; 05083 05084 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 05085 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 2> : tuple_type<A2> { 05086 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a2) {} 05087 typename tuple_type<A2>::const_reference get() const { return m_x; } 05088 private: 05089 typename tuple_type<A2>::const_reference m_x; 05090 }; 05091 05092 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 05093 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 3> : tuple_type<A3> { 05094 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a3) {} 05095 typename tuple_type<A3>::const_reference get() const { return m_x; } 05096 private: 05097 typename tuple_type<A3>::const_reference m_x; 05098 }; 05099 05100 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 05101 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 4> : tuple_type<A4> { 05102 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a4) {} 05103 typename tuple_type<A4>::const_reference get() const { return m_x; } 05104 private: 05105 typename tuple_type<A4>::const_reference m_x; 05106 }; 05107 05108 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 05109 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 5> : tuple_type<A5> { 05110 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a5) {} 05111 typename tuple_type<A5>::const_reference get() const { return m_x; } 05112 private: 05113 typename tuple_type<A5>::const_reference m_x; 05114 }; 05115 05116 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 05117 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 6> : tuple_type<A6> { 05118 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a6) {} 05119 typename tuple_type<A6>::const_reference get() const { return m_x; } 05120 private: 05121 typename tuple_type<A6>::const_reference m_x; 05122 }; 05123 05124 05125 05126 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05127 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 0> : tuple_type<A0> { 05128 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a0) {} 05129 typename tuple_type<A0>::const_reference get() const { return m_x; } 05130 private: 05131 typename tuple_type<A0>::const_reference m_x; 05132 }; 05133 05134 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05135 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 1> : tuple_type<A1> { 05136 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a1) {} 05137 typename tuple_type<A1>::const_reference get() const { return m_x; } 05138 private: 05139 typename tuple_type<A1>::const_reference m_x; 05140 }; 05141 05142 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05143 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 2> : tuple_type<A2> { 05144 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a2) {} 05145 typename tuple_type<A2>::const_reference get() const { return m_x; } 05146 private: 05147 typename tuple_type<A2>::const_reference m_x; 05148 }; 05149 05150 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05151 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 3> : tuple_type<A3> { 05152 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a3) {} 05153 typename tuple_type<A3>::const_reference get() const { return m_x; } 05154 private: 05155 typename tuple_type<A3>::const_reference m_x; 05156 }; 05157 05158 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05159 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 4> : tuple_type<A4> { 05160 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a4) {} 05161 typename tuple_type<A4>::const_reference get() const { return m_x; } 05162 private: 05163 typename tuple_type<A4>::const_reference m_x; 05164 }; 05165 05166 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05167 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 5> : tuple_type<A5> { 05168 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a5) {} 05169 typename tuple_type<A5>::const_reference get() const { return m_x; } 05170 private: 05171 typename tuple_type<A5>::const_reference m_x; 05172 }; 05173 05174 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05175 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 6> : tuple_type<A6> { 05176 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a6) {} 05177 typename tuple_type<A6>::const_reference get() const { return m_x; } 05178 private: 05179 typename tuple_type<A6>::const_reference m_x; 05180 }; 05181 05182 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 05183 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 7> : tuple_type<A7> { 05184 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a7) {} 05185 typename tuple_type<A7>::const_reference get() const { return m_x; } 05186 private: 05187 typename tuple_type<A7>::const_reference m_x; 05188 }; 05189 05190 05191 05192 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05193 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 0> : tuple_type<A0> { 05194 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a0) {} 05195 typename tuple_type<A0>::const_reference get() const { return m_x; } 05196 private: 05197 typename tuple_type<A0>::const_reference m_x; 05198 }; 05199 05200 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05201 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 1> : tuple_type<A1> { 05202 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a1) {} 05203 typename tuple_type<A1>::const_reference get() const { return m_x; } 05204 private: 05205 typename tuple_type<A1>::const_reference m_x; 05206 }; 05207 05208 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05209 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 2> : tuple_type<A2> { 05210 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a2) {} 05211 typename tuple_type<A2>::const_reference get() const { return m_x; } 05212 private: 05213 typename tuple_type<A2>::const_reference m_x; 05214 }; 05215 05216 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05217 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 3> : tuple_type<A3> { 05218 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a3) {} 05219 typename tuple_type<A3>::const_reference get() const { return m_x; } 05220 private: 05221 typename tuple_type<A3>::const_reference m_x; 05222 }; 05223 05224 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05225 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 4> : tuple_type<A4> { 05226 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a4) {} 05227 typename tuple_type<A4>::const_reference get() const { return m_x; } 05228 private: 05229 typename tuple_type<A4>::const_reference m_x; 05230 }; 05231 05232 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05233 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 5> : tuple_type<A5> { 05234 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a5) {} 05235 typename tuple_type<A5>::const_reference get() const { return m_x; } 05236 private: 05237 typename tuple_type<A5>::const_reference m_x; 05238 }; 05239 05240 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05241 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 6> : tuple_type<A6> { 05242 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a6) {} 05243 typename tuple_type<A6>::const_reference get() const { return m_x; } 05244 private: 05245 typename tuple_type<A6>::const_reference m_x; 05246 }; 05247 05248 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05249 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 7> : tuple_type<A7> { 05250 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a7) {} 05251 typename tuple_type<A7>::const_reference get() const { return m_x; } 05252 private: 05253 typename tuple_type<A7>::const_reference m_x; 05254 }; 05255 05256 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 05257 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 8> : tuple_type<A8> { 05258 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a8) {} 05259 typename tuple_type<A8>::const_reference get() const { return m_x; } 05260 private: 05261 typename tuple_type<A8>::const_reference m_x; 05262 }; 05263 05264 05265 05266 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05267 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 0> : tuple_type<A0> { 05268 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a0) {} 05269 typename tuple_type<A0>::const_reference get() const { return m_x; } 05270 private: 05271 typename tuple_type<A0>::const_reference m_x; 05272 }; 05273 05274 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05275 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 1> : tuple_type<A1> { 05276 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a1) {} 05277 typename tuple_type<A1>::const_reference get() const { return m_x; } 05278 private: 05279 typename tuple_type<A1>::const_reference m_x; 05280 }; 05281 05282 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05283 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 2> : tuple_type<A2> { 05284 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a2) {} 05285 typename tuple_type<A2>::const_reference get() const { return m_x; } 05286 private: 05287 typename tuple_type<A2>::const_reference m_x; 05288 }; 05289 05290 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05291 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 3> : tuple_type<A3> { 05292 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a3) {} 05293 typename tuple_type<A3>::const_reference get() const { return m_x; } 05294 private: 05295 typename tuple_type<A3>::const_reference m_x; 05296 }; 05297 05298 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05299 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 4> : tuple_type<A4> { 05300 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a4) {} 05301 typename tuple_type<A4>::const_reference get() const { return m_x; } 05302 private: 05303 typename tuple_type<A4>::const_reference m_x; 05304 }; 05305 05306 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05307 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 5> : tuple_type<A5> { 05308 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a5) {} 05309 typename tuple_type<A5>::const_reference get() const { return m_x; } 05310 private: 05311 typename tuple_type<A5>::const_reference m_x; 05312 }; 05313 05314 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05315 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 6> : tuple_type<A6> { 05316 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a6) {} 05317 typename tuple_type<A6>::const_reference get() const { return m_x; } 05318 private: 05319 typename tuple_type<A6>::const_reference m_x; 05320 }; 05321 05322 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05323 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 7> : tuple_type<A7> { 05324 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a7) {} 05325 typename tuple_type<A7>::const_reference get() const { return m_x; } 05326 private: 05327 typename tuple_type<A7>::const_reference m_x; 05328 }; 05329 05330 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05331 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 8> : tuple_type<A8> { 05332 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a8) {} 05333 typename tuple_type<A8>::const_reference get() const { return m_x; } 05334 private: 05335 typename tuple_type<A8>::const_reference m_x; 05336 }; 05337 05338 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 05339 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 9> : tuple_type<A9> { 05340 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a9) {} 05341 typename tuple_type<A9>::const_reference get() const { return m_x; } 05342 private: 05343 typename tuple_type<A9>::const_reference m_x; 05344 }; 05345 05346 05347 05348 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05349 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 0> : tuple_type<A0> { 05350 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a0) {} 05351 typename tuple_type<A0>::const_reference get() const { return m_x; } 05352 private: 05353 typename tuple_type<A0>::const_reference m_x; 05354 }; 05355 05356 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05357 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 1> : tuple_type<A1> { 05358 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a1) {} 05359 typename tuple_type<A1>::const_reference get() const { return m_x; } 05360 private: 05361 typename tuple_type<A1>::const_reference m_x; 05362 }; 05363 05364 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05365 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 2> : tuple_type<A2> { 05366 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a2) {} 05367 typename tuple_type<A2>::const_reference get() const { return m_x; } 05368 private: 05369 typename tuple_type<A2>::const_reference m_x; 05370 }; 05371 05372 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05373 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 3> : tuple_type<A3> { 05374 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a3) {} 05375 typename tuple_type<A3>::const_reference get() const { return m_x; } 05376 private: 05377 typename tuple_type<A3>::const_reference m_x; 05378 }; 05379 05380 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05381 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 4> : tuple_type<A4> { 05382 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a4) {} 05383 typename tuple_type<A4>::const_reference get() const { return m_x; } 05384 private: 05385 typename tuple_type<A4>::const_reference m_x; 05386 }; 05387 05388 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05389 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 5> : tuple_type<A5> { 05390 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a5) {} 05391 typename tuple_type<A5>::const_reference get() const { return m_x; } 05392 private: 05393 typename tuple_type<A5>::const_reference m_x; 05394 }; 05395 05396 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05397 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 6> : tuple_type<A6> { 05398 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a6) {} 05399 typename tuple_type<A6>::const_reference get() const { return m_x; } 05400 private: 05401 typename tuple_type<A6>::const_reference m_x; 05402 }; 05403 05404 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05405 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 7> : tuple_type<A7> { 05406 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a7) {} 05407 typename tuple_type<A7>::const_reference get() const { return m_x; } 05408 private: 05409 typename tuple_type<A7>::const_reference m_x; 05410 }; 05411 05412 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05413 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 8> : tuple_type<A8> { 05414 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a8) {} 05415 typename tuple_type<A8>::const_reference get() const { return m_x; } 05416 private: 05417 typename tuple_type<A8>::const_reference m_x; 05418 }; 05419 05420 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05421 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 9> : tuple_type<A9> { 05422 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a9) {} 05423 typename tuple_type<A9>::const_reference get() const { return m_x; } 05424 private: 05425 typename tuple_type<A9>::const_reference m_x; 05426 }; 05427 05428 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 05429 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 10> : tuple_type<A10> { 05430 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a10) {} 05431 typename tuple_type<A10>::const_reference get() const { return m_x; } 05432 private: 05433 typename tuple_type<A10>::const_reference m_x; 05434 }; 05435 05436 05437 05438 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05439 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 0> : tuple_type<A0> { 05440 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a0) {} 05441 typename tuple_type<A0>::const_reference get() const { return m_x; } 05442 private: 05443 typename tuple_type<A0>::const_reference m_x; 05444 }; 05445 05446 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05447 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 1> : tuple_type<A1> { 05448 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a1) {} 05449 typename tuple_type<A1>::const_reference get() const { return m_x; } 05450 private: 05451 typename tuple_type<A1>::const_reference m_x; 05452 }; 05453 05454 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05455 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 2> : tuple_type<A2> { 05456 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a2) {} 05457 typename tuple_type<A2>::const_reference get() const { return m_x; } 05458 private: 05459 typename tuple_type<A2>::const_reference m_x; 05460 }; 05461 05462 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05463 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 3> : tuple_type<A3> { 05464 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a3) {} 05465 typename tuple_type<A3>::const_reference get() const { return m_x; } 05466 private: 05467 typename tuple_type<A3>::const_reference m_x; 05468 }; 05469 05470 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05471 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 4> : tuple_type<A4> { 05472 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a4) {} 05473 typename tuple_type<A4>::const_reference get() const { return m_x; } 05474 private: 05475 typename tuple_type<A4>::const_reference m_x; 05476 }; 05477 05478 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05479 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 5> : tuple_type<A5> { 05480 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a5) {} 05481 typename tuple_type<A5>::const_reference get() const { return m_x; } 05482 private: 05483 typename tuple_type<A5>::const_reference m_x; 05484 }; 05485 05486 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05487 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 6> : tuple_type<A6> { 05488 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a6) {} 05489 typename tuple_type<A6>::const_reference get() const { return m_x; } 05490 private: 05491 typename tuple_type<A6>::const_reference m_x; 05492 }; 05493 05494 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05495 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 7> : tuple_type<A7> { 05496 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a7) {} 05497 typename tuple_type<A7>::const_reference get() const { return m_x; } 05498 private: 05499 typename tuple_type<A7>::const_reference m_x; 05500 }; 05501 05502 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05503 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 8> : tuple_type<A8> { 05504 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a8) {} 05505 typename tuple_type<A8>::const_reference get() const { return m_x; } 05506 private: 05507 typename tuple_type<A8>::const_reference m_x; 05508 }; 05509 05510 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05511 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 9> : tuple_type<A9> { 05512 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a9) {} 05513 typename tuple_type<A9>::const_reference get() const { return m_x; } 05514 private: 05515 typename tuple_type<A9>::const_reference m_x; 05516 }; 05517 05518 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05519 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 10> : tuple_type<A10> { 05520 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a10) {} 05521 typename tuple_type<A10>::const_reference get() const { return m_x; } 05522 private: 05523 typename tuple_type<A10>::const_reference m_x; 05524 }; 05525 05526 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 05527 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 11> : tuple_type<A11> { 05528 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a11) {} 05529 typename tuple_type<A11>::const_reference get() const { return m_x; } 05530 private: 05531 typename tuple_type<A11>::const_reference m_x; 05532 }; 05533 05534 05535 05536 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05537 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 0> : tuple_type<A0> { 05538 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a0) {} 05539 typename tuple_type<A0>::const_reference get() const { return m_x; } 05540 private: 05541 typename tuple_type<A0>::const_reference m_x; 05542 }; 05543 05544 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05545 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 1> : tuple_type<A1> { 05546 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a1) {} 05547 typename tuple_type<A1>::const_reference get() const { return m_x; } 05548 private: 05549 typename tuple_type<A1>::const_reference m_x; 05550 }; 05551 05552 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05553 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 2> : tuple_type<A2> { 05554 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a2) {} 05555 typename tuple_type<A2>::const_reference get() const { return m_x; } 05556 private: 05557 typename tuple_type<A2>::const_reference m_x; 05558 }; 05559 05560 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05561 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 3> : tuple_type<A3> { 05562 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a3) {} 05563 typename tuple_type<A3>::const_reference get() const { return m_x; } 05564 private: 05565 typename tuple_type<A3>::const_reference m_x; 05566 }; 05567 05568 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05569 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 4> : tuple_type<A4> { 05570 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a4) {} 05571 typename tuple_type<A4>::const_reference get() const { return m_x; } 05572 private: 05573 typename tuple_type<A4>::const_reference m_x; 05574 }; 05575 05576 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05577 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 5> : tuple_type<A5> { 05578 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a5) {} 05579 typename tuple_type<A5>::const_reference get() const { return m_x; } 05580 private: 05581 typename tuple_type<A5>::const_reference m_x; 05582 }; 05583 05584 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05585 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 6> : tuple_type<A6> { 05586 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a6) {} 05587 typename tuple_type<A6>::const_reference get() const { return m_x; } 05588 private: 05589 typename tuple_type<A6>::const_reference m_x; 05590 }; 05591 05592 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05593 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 7> : tuple_type<A7> { 05594 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a7) {} 05595 typename tuple_type<A7>::const_reference get() const { return m_x; } 05596 private: 05597 typename tuple_type<A7>::const_reference m_x; 05598 }; 05599 05600 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05601 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 8> : tuple_type<A8> { 05602 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a8) {} 05603 typename tuple_type<A8>::const_reference get() const { return m_x; } 05604 private: 05605 typename tuple_type<A8>::const_reference m_x; 05606 }; 05607 05608 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05609 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 9> : tuple_type<A9> { 05610 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a9) {} 05611 typename tuple_type<A9>::const_reference get() const { return m_x; } 05612 private: 05613 typename tuple_type<A9>::const_reference m_x; 05614 }; 05615 05616 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05617 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 10> : tuple_type<A10> { 05618 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a10) {} 05619 typename tuple_type<A10>::const_reference get() const { return m_x; } 05620 private: 05621 typename tuple_type<A10>::const_reference m_x; 05622 }; 05623 05624 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05625 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 11> : tuple_type<A11> { 05626 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a11) {} 05627 typename tuple_type<A11>::const_reference get() const { return m_x; } 05628 private: 05629 typename tuple_type<A11>::const_reference m_x; 05630 }; 05631 05632 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 05633 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 12> : tuple_type<A12> { 05634 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a12) {} 05635 typename tuple_type<A12>::const_reference get() const { return m_x; } 05636 private: 05637 typename tuple_type<A12>::const_reference m_x; 05638 }; 05639 05640 05641 05642 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05643 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 0> : tuple_type<A0> { 05644 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a0) {} 05645 typename tuple_type<A0>::const_reference get() const { return m_x; } 05646 private: 05647 typename tuple_type<A0>::const_reference m_x; 05648 }; 05649 05650 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05651 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 1> : tuple_type<A1> { 05652 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a1) {} 05653 typename tuple_type<A1>::const_reference get() const { return m_x; } 05654 private: 05655 typename tuple_type<A1>::const_reference m_x; 05656 }; 05657 05658 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05659 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 2> : tuple_type<A2> { 05660 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a2) {} 05661 typename tuple_type<A2>::const_reference get() const { return m_x; } 05662 private: 05663 typename tuple_type<A2>::const_reference m_x; 05664 }; 05665 05666 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05667 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 3> : tuple_type<A3> { 05668 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a3) {} 05669 typename tuple_type<A3>::const_reference get() const { return m_x; } 05670 private: 05671 typename tuple_type<A3>::const_reference m_x; 05672 }; 05673 05674 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05675 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 4> : tuple_type<A4> { 05676 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a4) {} 05677 typename tuple_type<A4>::const_reference get() const { return m_x; } 05678 private: 05679 typename tuple_type<A4>::const_reference m_x; 05680 }; 05681 05682 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05683 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 5> : tuple_type<A5> { 05684 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a5) {} 05685 typename tuple_type<A5>::const_reference get() const { return m_x; } 05686 private: 05687 typename tuple_type<A5>::const_reference m_x; 05688 }; 05689 05690 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05691 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 6> : tuple_type<A6> { 05692 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a6) {} 05693 typename tuple_type<A6>::const_reference get() const { return m_x; } 05694 private: 05695 typename tuple_type<A6>::const_reference m_x; 05696 }; 05697 05698 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05699 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 7> : tuple_type<A7> { 05700 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a7) {} 05701 typename tuple_type<A7>::const_reference get() const { return m_x; } 05702 private: 05703 typename tuple_type<A7>::const_reference m_x; 05704 }; 05705 05706 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05707 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 8> : tuple_type<A8> { 05708 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a8) {} 05709 typename tuple_type<A8>::const_reference get() const { return m_x; } 05710 private: 05711 typename tuple_type<A8>::const_reference m_x; 05712 }; 05713 05714 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05715 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 9> : tuple_type<A9> { 05716 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a9) {} 05717 typename tuple_type<A9>::const_reference get() const { return m_x; } 05718 private: 05719 typename tuple_type<A9>::const_reference m_x; 05720 }; 05721 05722 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05723 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 10> : tuple_type<A10> { 05724 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a10) {} 05725 typename tuple_type<A10>::const_reference get() const { return m_x; } 05726 private: 05727 typename tuple_type<A10>::const_reference m_x; 05728 }; 05729 05730 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05731 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 11> : tuple_type<A11> { 05732 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a11) {} 05733 typename tuple_type<A11>::const_reference get() const { return m_x; } 05734 private: 05735 typename tuple_type<A11>::const_reference m_x; 05736 }; 05737 05738 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05739 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 12> : tuple_type<A12> { 05740 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a12) {} 05741 typename tuple_type<A12>::const_reference get() const { return m_x; } 05742 private: 05743 typename tuple_type<A12>::const_reference m_x; 05744 }; 05745 05746 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 05747 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 13> : tuple_type<A13> { 05748 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a13) {} 05749 typename tuple_type<A13>::const_reference get() const { return m_x; } 05750 private: 05751 typename tuple_type<A13>::const_reference m_x; 05752 }; 05753 05754 05755 05756 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05757 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 0> : tuple_type<A0> { 05758 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a0) {} 05759 typename tuple_type<A0>::const_reference get() const { return m_x; } 05760 private: 05761 typename tuple_type<A0>::const_reference m_x; 05762 }; 05763 05764 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05765 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 1> : tuple_type<A1> { 05766 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a1) {} 05767 typename tuple_type<A1>::const_reference get() const { return m_x; } 05768 private: 05769 typename tuple_type<A1>::const_reference m_x; 05770 }; 05771 05772 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05773 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 2> : tuple_type<A2> { 05774 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a2) {} 05775 typename tuple_type<A2>::const_reference get() const { return m_x; } 05776 private: 05777 typename tuple_type<A2>::const_reference m_x; 05778 }; 05779 05780 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05781 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 3> : tuple_type<A3> { 05782 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a3) {} 05783 typename tuple_type<A3>::const_reference get() const { return m_x; } 05784 private: 05785 typename tuple_type<A3>::const_reference m_x; 05786 }; 05787 05788 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05789 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 4> : tuple_type<A4> { 05790 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a4) {} 05791 typename tuple_type<A4>::const_reference get() const { return m_x; } 05792 private: 05793 typename tuple_type<A4>::const_reference m_x; 05794 }; 05795 05796 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05797 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 5> : tuple_type<A5> { 05798 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a5) {} 05799 typename tuple_type<A5>::const_reference get() const { return m_x; } 05800 private: 05801 typename tuple_type<A5>::const_reference m_x; 05802 }; 05803 05804 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05805 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 6> : tuple_type<A6> { 05806 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a6) {} 05807 typename tuple_type<A6>::const_reference get() const { return m_x; } 05808 private: 05809 typename tuple_type<A6>::const_reference m_x; 05810 }; 05811 05812 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05813 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 7> : tuple_type<A7> { 05814 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a7) {} 05815 typename tuple_type<A7>::const_reference get() const { return m_x; } 05816 private: 05817 typename tuple_type<A7>::const_reference m_x; 05818 }; 05819 05820 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05821 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 8> : tuple_type<A8> { 05822 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a8) {} 05823 typename tuple_type<A8>::const_reference get() const { return m_x; } 05824 private: 05825 typename tuple_type<A8>::const_reference m_x; 05826 }; 05827 05828 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05829 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 9> : tuple_type<A9> { 05830 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a9) {} 05831 typename tuple_type<A9>::const_reference get() const { return m_x; } 05832 private: 05833 typename tuple_type<A9>::const_reference m_x; 05834 }; 05835 05836 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05837 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 10> : tuple_type<A10> { 05838 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a10) {} 05839 typename tuple_type<A10>::const_reference get() const { return m_x; } 05840 private: 05841 typename tuple_type<A10>::const_reference m_x; 05842 }; 05843 05844 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05845 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 11> : tuple_type<A11> { 05846 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a11) {} 05847 typename tuple_type<A11>::const_reference get() const { return m_x; } 05848 private: 05849 typename tuple_type<A11>::const_reference m_x; 05850 }; 05851 05852 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05853 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 12> : tuple_type<A12> { 05854 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a12) {} 05855 typename tuple_type<A12>::const_reference get() const { return m_x; } 05856 private: 05857 typename tuple_type<A12>::const_reference m_x; 05858 }; 05859 05860 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05861 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 13> : tuple_type<A13> { 05862 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a13) {} 05863 typename tuple_type<A13>::const_reference get() const { return m_x; } 05864 private: 05865 typename tuple_type<A13>::const_reference m_x; 05866 }; 05867 05868 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 05869 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 14> : tuple_type<A14> { 05870 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a14) {} 05871 typename tuple_type<A14>::const_reference get() const { return m_x; } 05872 private: 05873 typename tuple_type<A14>::const_reference m_x; 05874 }; 05875 05876 05877 05878 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05879 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 0> : tuple_type<A0> { 05880 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a0) {} 05881 typename tuple_type<A0>::const_reference get() const { return m_x; } 05882 private: 05883 typename tuple_type<A0>::const_reference m_x; 05884 }; 05885 05886 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05887 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 1> : tuple_type<A1> { 05888 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a1) {} 05889 typename tuple_type<A1>::const_reference get() const { return m_x; } 05890 private: 05891 typename tuple_type<A1>::const_reference m_x; 05892 }; 05893 05894 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05895 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 2> : tuple_type<A2> { 05896 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a2) {} 05897 typename tuple_type<A2>::const_reference get() const { return m_x; } 05898 private: 05899 typename tuple_type<A2>::const_reference m_x; 05900 }; 05901 05902 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05903 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 3> : tuple_type<A3> { 05904 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a3) {} 05905 typename tuple_type<A3>::const_reference get() const { return m_x; } 05906 private: 05907 typename tuple_type<A3>::const_reference m_x; 05908 }; 05909 05910 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05911 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 4> : tuple_type<A4> { 05912 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a4) {} 05913 typename tuple_type<A4>::const_reference get() const { return m_x; } 05914 private: 05915 typename tuple_type<A4>::const_reference m_x; 05916 }; 05917 05918 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05919 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 5> : tuple_type<A5> { 05920 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a5) {} 05921 typename tuple_type<A5>::const_reference get() const { return m_x; } 05922 private: 05923 typename tuple_type<A5>::const_reference m_x; 05924 }; 05925 05926 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05927 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 6> : tuple_type<A6> { 05928 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a6) {} 05929 typename tuple_type<A6>::const_reference get() const { return m_x; } 05930 private: 05931 typename tuple_type<A6>::const_reference m_x; 05932 }; 05933 05934 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05935 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 7> : tuple_type<A7> { 05936 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a7) {} 05937 typename tuple_type<A7>::const_reference get() const { return m_x; } 05938 private: 05939 typename tuple_type<A7>::const_reference m_x; 05940 }; 05941 05942 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05943 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 8> : tuple_type<A8> { 05944 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a8) {} 05945 typename tuple_type<A8>::const_reference get() const { return m_x; } 05946 private: 05947 typename tuple_type<A8>::const_reference m_x; 05948 }; 05949 05950 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05951 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 9> : tuple_type<A9> { 05952 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a9) {} 05953 typename tuple_type<A9>::const_reference get() const { return m_x; } 05954 private: 05955 typename tuple_type<A9>::const_reference m_x; 05956 }; 05957 05958 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05959 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 10> : tuple_type<A10> { 05960 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a10) {} 05961 typename tuple_type<A10>::const_reference get() const { return m_x; } 05962 private: 05963 typename tuple_type<A10>::const_reference m_x; 05964 }; 05965 05966 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05967 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 11> : tuple_type<A11> { 05968 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a11) {} 05969 typename tuple_type<A11>::const_reference get() const { return m_x; } 05970 private: 05971 typename tuple_type<A11>::const_reference m_x; 05972 }; 05973 05974 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05975 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 12> : tuple_type<A12> { 05976 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a12) {} 05977 typename tuple_type<A12>::const_reference get() const { return m_x; } 05978 private: 05979 typename tuple_type<A12>::const_reference m_x; 05980 }; 05981 05982 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05983 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 13> : tuple_type<A13> { 05984 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a13) {} 05985 typename tuple_type<A13>::const_reference get() const { return m_x; } 05986 private: 05987 typename tuple_type<A13>::const_reference m_x; 05988 }; 05989 05990 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05991 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 14> : tuple_type<A14> { 05992 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a14) {} 05993 typename tuple_type<A14>::const_reference get() const { return m_x; } 05994 private: 05995 typename tuple_type<A14>::const_reference m_x; 05996 }; 05997 05998 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 05999 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 15> : tuple_type<A15> { 06000 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a15) {} 06001 typename tuple_type<A15>::const_reference get() const { return m_x; } 06002 private: 06003 typename tuple_type<A15>::const_reference m_x; 06004 }; 06005 06006 06007 06008 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06009 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 0> : tuple_type<A0> { 06010 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a0) {} 06011 typename tuple_type<A0>::const_reference get() const { return m_x; } 06012 private: 06013 typename tuple_type<A0>::const_reference m_x; 06014 }; 06015 06016 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06017 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 1> : tuple_type<A1> { 06018 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a1) {} 06019 typename tuple_type<A1>::const_reference get() const { return m_x; } 06020 private: 06021 typename tuple_type<A1>::const_reference m_x; 06022 }; 06023 06024 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06025 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 2> : tuple_type<A2> { 06026 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a2) {} 06027 typename tuple_type<A2>::const_reference get() const { return m_x; } 06028 private: 06029 typename tuple_type<A2>::const_reference m_x; 06030 }; 06031 06032 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06033 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 3> : tuple_type<A3> { 06034 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a3) {} 06035 typename tuple_type<A3>::const_reference get() const { return m_x; } 06036 private: 06037 typename tuple_type<A3>::const_reference m_x; 06038 }; 06039 06040 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06041 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 4> : tuple_type<A4> { 06042 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a4) {} 06043 typename tuple_type<A4>::const_reference get() const { return m_x; } 06044 private: 06045 typename tuple_type<A4>::const_reference m_x; 06046 }; 06047 06048 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06049 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 5> : tuple_type<A5> { 06050 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a5) {} 06051 typename tuple_type<A5>::const_reference get() const { return m_x; } 06052 private: 06053 typename tuple_type<A5>::const_reference m_x; 06054 }; 06055 06056 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06057 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 6> : tuple_type<A6> { 06058 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a6) {} 06059 typename tuple_type<A6>::const_reference get() const { return m_x; } 06060 private: 06061 typename tuple_type<A6>::const_reference m_x; 06062 }; 06063 06064 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06065 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 7> : tuple_type<A7> { 06066 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a7) {} 06067 typename tuple_type<A7>::const_reference get() const { return m_x; } 06068 private: 06069 typename tuple_type<A7>::const_reference m_x; 06070 }; 06071 06072 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06073 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 8> : tuple_type<A8> { 06074 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a8) {} 06075 typename tuple_type<A8>::const_reference get() const { return m_x; } 06076 private: 06077 typename tuple_type<A8>::const_reference m_x; 06078 }; 06079 06080 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06081 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 9> : tuple_type<A9> { 06082 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a9) {} 06083 typename tuple_type<A9>::const_reference get() const { return m_x; } 06084 private: 06085 typename tuple_type<A9>::const_reference m_x; 06086 }; 06087 06088 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06089 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 10> : tuple_type<A10> { 06090 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a10) {} 06091 typename tuple_type<A10>::const_reference get() const { return m_x; } 06092 private: 06093 typename tuple_type<A10>::const_reference m_x; 06094 }; 06095 06096 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06097 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 11> : tuple_type<A11> { 06098 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a11) {} 06099 typename tuple_type<A11>::const_reference get() const { return m_x; } 06100 private: 06101 typename tuple_type<A11>::const_reference m_x; 06102 }; 06103 06104 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06105 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 12> : tuple_type<A12> { 06106 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a12) {} 06107 typename tuple_type<A12>::const_reference get() const { return m_x; } 06108 private: 06109 typename tuple_type<A12>::const_reference m_x; 06110 }; 06111 06112 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06113 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 13> : tuple_type<A13> { 06114 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a13) {} 06115 typename tuple_type<A13>::const_reference get() const { return m_x; } 06116 private: 06117 typename tuple_type<A13>::const_reference m_x; 06118 }; 06119 06120 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06121 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 14> : tuple_type<A14> { 06122 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a14) {} 06123 typename tuple_type<A14>::const_reference get() const { return m_x; } 06124 private: 06125 typename tuple_type<A14>::const_reference m_x; 06126 }; 06127 06128 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06129 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 15> : tuple_type<A15> { 06130 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a15) {} 06131 typename tuple_type<A15>::const_reference get() const { return m_x; } 06132 private: 06133 typename tuple_type<A15>::const_reference m_x; 06134 }; 06135 06136 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 06137 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 16> : tuple_type<A16> { 06138 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a16) {} 06139 typename tuple_type<A16>::const_reference get() const { return m_x; } 06140 private: 06141 typename tuple_type<A16>::const_reference m_x; 06142 }; 06143 06144 06145 06146 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06147 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 0> : tuple_type<A0> { 06148 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a0) {} 06149 typename tuple_type<A0>::const_reference get() const { return m_x; } 06150 private: 06151 typename tuple_type<A0>::const_reference m_x; 06152 }; 06153 06154 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06155 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 1> : tuple_type<A1> { 06156 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a1) {} 06157 typename tuple_type<A1>::const_reference get() const { return m_x; } 06158 private: 06159 typename tuple_type<A1>::const_reference m_x; 06160 }; 06161 06162 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06163 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 2> : tuple_type<A2> { 06164 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a2) {} 06165 typename tuple_type<A2>::const_reference get() const { return m_x; } 06166 private: 06167 typename tuple_type<A2>::const_reference m_x; 06168 }; 06169 06170 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06171 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 3> : tuple_type<A3> { 06172 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a3) {} 06173 typename tuple_type<A3>::const_reference get() const { return m_x; } 06174 private: 06175 typename tuple_type<A3>::const_reference m_x; 06176 }; 06177 06178 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06179 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 4> : tuple_type<A4> { 06180 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a4) {} 06181 typename tuple_type<A4>::const_reference get() const { return m_x; } 06182 private: 06183 typename tuple_type<A4>::const_reference m_x; 06184 }; 06185 06186 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06187 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 5> : tuple_type<A5> { 06188 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a5) {} 06189 typename tuple_type<A5>::const_reference get() const { return m_x; } 06190 private: 06191 typename tuple_type<A5>::const_reference m_x; 06192 }; 06193 06194 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06195 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 6> : tuple_type<A6> { 06196 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a6) {} 06197 typename tuple_type<A6>::const_reference get() const { return m_x; } 06198 private: 06199 typename tuple_type<A6>::const_reference m_x; 06200 }; 06201 06202 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06203 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 7> : tuple_type<A7> { 06204 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a7) {} 06205 typename tuple_type<A7>::const_reference get() const { return m_x; } 06206 private: 06207 typename tuple_type<A7>::const_reference m_x; 06208 }; 06209 06210 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06211 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 8> : tuple_type<A8> { 06212 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a8) {} 06213 typename tuple_type<A8>::const_reference get() const { return m_x; } 06214 private: 06215 typename tuple_type<A8>::const_reference m_x; 06216 }; 06217 06218 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06219 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 9> : tuple_type<A9> { 06220 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a9) {} 06221 typename tuple_type<A9>::const_reference get() const { return m_x; } 06222 private: 06223 typename tuple_type<A9>::const_reference m_x; 06224 }; 06225 06226 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06227 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 10> : tuple_type<A10> { 06228 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a10) {} 06229 typename tuple_type<A10>::const_reference get() const { return m_x; } 06230 private: 06231 typename tuple_type<A10>::const_reference m_x; 06232 }; 06233 06234 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06235 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 11> : tuple_type<A11> { 06236 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a11) {} 06237 typename tuple_type<A11>::const_reference get() const { return m_x; } 06238 private: 06239 typename tuple_type<A11>::const_reference m_x; 06240 }; 06241 06242 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06243 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 12> : tuple_type<A12> { 06244 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a12) {} 06245 typename tuple_type<A12>::const_reference get() const { return m_x; } 06246 private: 06247 typename tuple_type<A12>::const_reference m_x; 06248 }; 06249 06250 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06251 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 13> : tuple_type<A13> { 06252 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a13) {} 06253 typename tuple_type<A13>::const_reference get() const { return m_x; } 06254 private: 06255 typename tuple_type<A13>::const_reference m_x; 06256 }; 06257 06258 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06259 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 14> : tuple_type<A14> { 06260 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a14) {} 06261 typename tuple_type<A14>::const_reference get() const { return m_x; } 06262 private: 06263 typename tuple_type<A14>::const_reference m_x; 06264 }; 06265 06266 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06267 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 15> : tuple_type<A15> { 06268 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a15) {} 06269 typename tuple_type<A15>::const_reference get() const { return m_x; } 06270 private: 06271 typename tuple_type<A15>::const_reference m_x; 06272 }; 06273 06274 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06275 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 16> : tuple_type<A16> { 06276 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a16) {} 06277 typename tuple_type<A16>::const_reference get() const { return m_x; } 06278 private: 06279 typename tuple_type<A16>::const_reference m_x; 06280 }; 06281 06282 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 06283 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 17> : tuple_type<A17> { 06284 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a17) {} 06285 typename tuple_type<A17>::const_reference get() const { return m_x; } 06286 private: 06287 typename tuple_type<A17>::const_reference m_x; 06288 }; 06289 06290 06291 06292 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06293 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 0> : tuple_type<A0> { 06294 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a0) {} 06295 typename tuple_type<A0>::const_reference get() const { return m_x; } 06296 private: 06297 typename tuple_type<A0>::const_reference m_x; 06298 }; 06299 06300 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06301 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 1> : tuple_type<A1> { 06302 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a1) {} 06303 typename tuple_type<A1>::const_reference get() const { return m_x; } 06304 private: 06305 typename tuple_type<A1>::const_reference m_x; 06306 }; 06307 06308 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06309 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 2> : tuple_type<A2> { 06310 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a2) {} 06311 typename tuple_type<A2>::const_reference get() const { return m_x; } 06312 private: 06313 typename tuple_type<A2>::const_reference m_x; 06314 }; 06315 06316 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06317 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 3> : tuple_type<A3> { 06318 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a3) {} 06319 typename tuple_type<A3>::const_reference get() const { return m_x; } 06320 private: 06321 typename tuple_type<A3>::const_reference m_x; 06322 }; 06323 06324 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06325 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 4> : tuple_type<A4> { 06326 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a4) {} 06327 typename tuple_type<A4>::const_reference get() const { return m_x; } 06328 private: 06329 typename tuple_type<A4>::const_reference m_x; 06330 }; 06331 06332 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06333 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 5> : tuple_type<A5> { 06334 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a5) {} 06335 typename tuple_type<A5>::const_reference get() const { return m_x; } 06336 private: 06337 typename tuple_type<A5>::const_reference m_x; 06338 }; 06339 06340 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06341 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 6> : tuple_type<A6> { 06342 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a6) {} 06343 typename tuple_type<A6>::const_reference get() const { return m_x; } 06344 private: 06345 typename tuple_type<A6>::const_reference m_x; 06346 }; 06347 06348 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06349 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 7> : tuple_type<A7> { 06350 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a7) {} 06351 typename tuple_type<A7>::const_reference get() const { return m_x; } 06352 private: 06353 typename tuple_type<A7>::const_reference m_x; 06354 }; 06355 06356 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06357 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 8> : tuple_type<A8> { 06358 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a8) {} 06359 typename tuple_type<A8>::const_reference get() const { return m_x; } 06360 private: 06361 typename tuple_type<A8>::const_reference m_x; 06362 }; 06363 06364 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06365 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 9> : tuple_type<A9> { 06366 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a9) {} 06367 typename tuple_type<A9>::const_reference get() const { return m_x; } 06368 private: 06369 typename tuple_type<A9>::const_reference m_x; 06370 }; 06371 06372 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06373 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 10> : tuple_type<A10> { 06374 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a10) {} 06375 typename tuple_type<A10>::const_reference get() const { return m_x; } 06376 private: 06377 typename tuple_type<A10>::const_reference m_x; 06378 }; 06379 06380 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06381 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 11> : tuple_type<A11> { 06382 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a11) {} 06383 typename tuple_type<A11>::const_reference get() const { return m_x; } 06384 private: 06385 typename tuple_type<A11>::const_reference m_x; 06386 }; 06387 06388 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06389 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 12> : tuple_type<A12> { 06390 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a12) {} 06391 typename tuple_type<A12>::const_reference get() const { return m_x; } 06392 private: 06393 typename tuple_type<A12>::const_reference m_x; 06394 }; 06395 06396 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06397 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 13> : tuple_type<A13> { 06398 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a13) {} 06399 typename tuple_type<A13>::const_reference get() const { return m_x; } 06400 private: 06401 typename tuple_type<A13>::const_reference m_x; 06402 }; 06403 06404 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06405 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 14> : tuple_type<A14> { 06406 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a14) {} 06407 typename tuple_type<A14>::const_reference get() const { return m_x; } 06408 private: 06409 typename tuple_type<A14>::const_reference m_x; 06410 }; 06411 06412 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06413 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 15> : tuple_type<A15> { 06414 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a15) {} 06415 typename tuple_type<A15>::const_reference get() const { return m_x; } 06416 private: 06417 typename tuple_type<A15>::const_reference m_x; 06418 }; 06419 06420 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06421 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 16> : tuple_type<A16> { 06422 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a16) {} 06423 typename tuple_type<A16>::const_reference get() const { return m_x; } 06424 private: 06425 typename tuple_type<A16>::const_reference m_x; 06426 }; 06427 06428 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06429 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 17> : tuple_type<A17> { 06430 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a17) {} 06431 typename tuple_type<A17>::const_reference get() const { return m_x; } 06432 private: 06433 typename tuple_type<A17>::const_reference m_x; 06434 }; 06435 06436 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 06437 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 18> : tuple_type<A18> { 06438 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a18) {} 06439 typename tuple_type<A18>::const_reference get() const { return m_x; } 06440 private: 06441 typename tuple_type<A18>::const_reference m_x; 06442 }; 06443 06444 06445 06446 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06447 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 0> : tuple_type<A0> { 06448 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a0) {} 06449 typename tuple_type<A0>::const_reference get() const { return m_x; } 06450 private: 06451 typename tuple_type<A0>::const_reference m_x; 06452 }; 06453 06454 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06455 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 1> : tuple_type<A1> { 06456 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a1) {} 06457 typename tuple_type<A1>::const_reference get() const { return m_x; } 06458 private: 06459 typename tuple_type<A1>::const_reference m_x; 06460 }; 06461 06462 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06463 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 2> : tuple_type<A2> { 06464 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a2) {} 06465 typename tuple_type<A2>::const_reference get() const { return m_x; } 06466 private: 06467 typename tuple_type<A2>::const_reference m_x; 06468 }; 06469 06470 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06471 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 3> : tuple_type<A3> { 06472 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a3) {} 06473 typename tuple_type<A3>::const_reference get() const { return m_x; } 06474 private: 06475 typename tuple_type<A3>::const_reference m_x; 06476 }; 06477 06478 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06479 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 4> : tuple_type<A4> { 06480 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a4) {} 06481 typename tuple_type<A4>::const_reference get() const { return m_x; } 06482 private: 06483 typename tuple_type<A4>::const_reference m_x; 06484 }; 06485 06486 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06487 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 5> : tuple_type<A5> { 06488 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a5) {} 06489 typename tuple_type<A5>::const_reference get() const { return m_x; } 06490 private: 06491 typename tuple_type<A5>::const_reference m_x; 06492 }; 06493 06494 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06495 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 6> : tuple_type<A6> { 06496 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a6) {} 06497 typename tuple_type<A6>::const_reference get() const { return m_x; } 06498 private: 06499 typename tuple_type<A6>::const_reference m_x; 06500 }; 06501 06502 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06503 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 7> : tuple_type<A7> { 06504 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a7) {} 06505 typename tuple_type<A7>::const_reference get() const { return m_x; } 06506 private: 06507 typename tuple_type<A7>::const_reference m_x; 06508 }; 06509 06510 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06511 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 8> : tuple_type<A8> { 06512 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a8) {} 06513 typename tuple_type<A8>::const_reference get() const { return m_x; } 06514 private: 06515 typename tuple_type<A8>::const_reference m_x; 06516 }; 06517 06518 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06519 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 9> : tuple_type<A9> { 06520 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a9) {} 06521 typename tuple_type<A9>::const_reference get() const { return m_x; } 06522 private: 06523 typename tuple_type<A9>::const_reference m_x; 06524 }; 06525 06526 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06527 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 10> : tuple_type<A10> { 06528 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a10) {} 06529 typename tuple_type<A10>::const_reference get() const { return m_x; } 06530 private: 06531 typename tuple_type<A10>::const_reference m_x; 06532 }; 06533 06534 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06535 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 11> : tuple_type<A11> { 06536 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a11) {} 06537 typename tuple_type<A11>::const_reference get() const { return m_x; } 06538 private: 06539 typename tuple_type<A11>::const_reference m_x; 06540 }; 06541 06542 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06543 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 12> : tuple_type<A12> { 06544 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a12) {} 06545 typename tuple_type<A12>::const_reference get() const { return m_x; } 06546 private: 06547 typename tuple_type<A12>::const_reference m_x; 06548 }; 06549 06550 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06551 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 13> : tuple_type<A13> { 06552 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a13) {} 06553 typename tuple_type<A13>::const_reference get() const { return m_x; } 06554 private: 06555 typename tuple_type<A13>::const_reference m_x; 06556 }; 06557 06558 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06559 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 14> : tuple_type<A14> { 06560 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a14) {} 06561 typename tuple_type<A14>::const_reference get() const { return m_x; } 06562 private: 06563 typename tuple_type<A14>::const_reference m_x; 06564 }; 06565 06566 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06567 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 15> : tuple_type<A15> { 06568 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a15) {} 06569 typename tuple_type<A15>::const_reference get() const { return m_x; } 06570 private: 06571 typename tuple_type<A15>::const_reference m_x; 06572 }; 06573 06574 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06575 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 16> : tuple_type<A16> { 06576 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a16) {} 06577 typename tuple_type<A16>::const_reference get() const { return m_x; } 06578 private: 06579 typename tuple_type<A16>::const_reference m_x; 06580 }; 06581 06582 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06583 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 17> : tuple_type<A17> { 06584 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a17) {} 06585 typename tuple_type<A17>::const_reference get() const { return m_x; } 06586 private: 06587 typename tuple_type<A17>::const_reference m_x; 06588 }; 06589 06590 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06591 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 18> : tuple_type<A18> { 06592 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a18) {} 06593 typename tuple_type<A18>::const_reference get() const { return m_x; } 06594 private: 06595 typename tuple_type<A18>::const_reference m_x; 06596 }; 06597 06598 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 06599 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 19> : tuple_type<A19> { 06600 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a19) {} 06601 typename tuple_type<A19>::const_reference get() const { return m_x; } 06602 private: 06603 typename tuple_type<A19>::const_reference m_x; 06604 }; 06605 06606 06607 06608 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06609 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 0> : tuple_type<A0> { 06610 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a0) {} 06611 typename tuple_type<A0>::const_reference get() const { return m_x; } 06612 private: 06613 typename tuple_type<A0>::const_reference m_x; 06614 }; 06615 06616 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06617 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 1> : tuple_type<A1> { 06618 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a1) {} 06619 typename tuple_type<A1>::const_reference get() const { return m_x; } 06620 private: 06621 typename tuple_type<A1>::const_reference m_x; 06622 }; 06623 06624 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06625 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 2> : tuple_type<A2> { 06626 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a2) {} 06627 typename tuple_type<A2>::const_reference get() const { return m_x; } 06628 private: 06629 typename tuple_type<A2>::const_reference m_x; 06630 }; 06631 06632 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06633 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 3> : tuple_type<A3> { 06634 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a3) {} 06635 typename tuple_type<A3>::const_reference get() const { return m_x; } 06636 private: 06637 typename tuple_type<A3>::const_reference m_x; 06638 }; 06639 06640 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06641 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 4> : tuple_type<A4> { 06642 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a4) {} 06643 typename tuple_type<A4>::const_reference get() const { return m_x; } 06644 private: 06645 typename tuple_type<A4>::const_reference m_x; 06646 }; 06647 06648 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06649 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 5> : tuple_type<A5> { 06650 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a5) {} 06651 typename tuple_type<A5>::const_reference get() const { return m_x; } 06652 private: 06653 typename tuple_type<A5>::const_reference m_x; 06654 }; 06655 06656 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06657 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 6> : tuple_type<A6> { 06658 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a6) {} 06659 typename tuple_type<A6>::const_reference get() const { return m_x; } 06660 private: 06661 typename tuple_type<A6>::const_reference m_x; 06662 }; 06663 06664 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06665 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 7> : tuple_type<A7> { 06666 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a7) {} 06667 typename tuple_type<A7>::const_reference get() const { return m_x; } 06668 private: 06669 typename tuple_type<A7>::const_reference m_x; 06670 }; 06671 06672 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06673 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 8> : tuple_type<A8> { 06674 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a8) {} 06675 typename tuple_type<A8>::const_reference get() const { return m_x; } 06676 private: 06677 typename tuple_type<A8>::const_reference m_x; 06678 }; 06679 06680 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06681 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 9> : tuple_type<A9> { 06682 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a9) {} 06683 typename tuple_type<A9>::const_reference get() const { return m_x; } 06684 private: 06685 typename tuple_type<A9>::const_reference m_x; 06686 }; 06687 06688 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06689 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 10> : tuple_type<A10> { 06690 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a10) {} 06691 typename tuple_type<A10>::const_reference get() const { return m_x; } 06692 private: 06693 typename tuple_type<A10>::const_reference m_x; 06694 }; 06695 06696 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06697 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 11> : tuple_type<A11> { 06698 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a11) {} 06699 typename tuple_type<A11>::const_reference get() const { return m_x; } 06700 private: 06701 typename tuple_type<A11>::const_reference m_x; 06702 }; 06703 06704 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06705 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 12> : tuple_type<A12> { 06706 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a12) {} 06707 typename tuple_type<A12>::const_reference get() const { return m_x; } 06708 private: 06709 typename tuple_type<A12>::const_reference m_x; 06710 }; 06711 06712 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06713 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 13> : tuple_type<A13> { 06714 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a13) {} 06715 typename tuple_type<A13>::const_reference get() const { return m_x; } 06716 private: 06717 typename tuple_type<A13>::const_reference m_x; 06718 }; 06719 06720 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06721 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 14> : tuple_type<A14> { 06722 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a14) {} 06723 typename tuple_type<A14>::const_reference get() const { return m_x; } 06724 private: 06725 typename tuple_type<A14>::const_reference m_x; 06726 }; 06727 06728 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06729 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 15> : tuple_type<A15> { 06730 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a15) {} 06731 typename tuple_type<A15>::const_reference get() const { return m_x; } 06732 private: 06733 typename tuple_type<A15>::const_reference m_x; 06734 }; 06735 06736 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06737 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 16> : tuple_type<A16> { 06738 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a16) {} 06739 typename tuple_type<A16>::const_reference get() const { return m_x; } 06740 private: 06741 typename tuple_type<A16>::const_reference m_x; 06742 }; 06743 06744 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06745 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 17> : tuple_type<A17> { 06746 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a17) {} 06747 typename tuple_type<A17>::const_reference get() const { return m_x; } 06748 private: 06749 typename tuple_type<A17>::const_reference m_x; 06750 }; 06751 06752 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06753 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 18> : tuple_type<A18> { 06754 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a18) {} 06755 typename tuple_type<A18>::const_reference get() const { return m_x; } 06756 private: 06757 typename tuple_type<A18>::const_reference m_x; 06758 }; 06759 06760 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06761 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 19> : tuple_type<A19> { 06762 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a19) {} 06763 typename tuple_type<A19>::const_reference get() const { return m_x; } 06764 private: 06765 typename tuple_type<A19>::const_reference m_x; 06766 }; 06767 06768 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 06769 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 20> : tuple_type<A20> { 06770 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a20) {} 06771 typename tuple_type<A20>::const_reference get() const { return m_x; } 06772 private: 06773 typename tuple_type<A20>::const_reference m_x; 06774 }; 06775 06776 06777 06778 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06779 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 0> : tuple_type<A0> { 06780 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a0) {} 06781 typename tuple_type<A0>::const_reference get() const { return m_x; } 06782 private: 06783 typename tuple_type<A0>::const_reference m_x; 06784 }; 06785 06786 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06787 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 1> : tuple_type<A1> { 06788 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a1) {} 06789 typename tuple_type<A1>::const_reference get() const { return m_x; } 06790 private: 06791 typename tuple_type<A1>::const_reference m_x; 06792 }; 06793 06794 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06795 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 2> : tuple_type<A2> { 06796 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a2) {} 06797 typename tuple_type<A2>::const_reference get() const { return m_x; } 06798 private: 06799 typename tuple_type<A2>::const_reference m_x; 06800 }; 06801 06802 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06803 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 3> : tuple_type<A3> { 06804 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a3) {} 06805 typename tuple_type<A3>::const_reference get() const { return m_x; } 06806 private: 06807 typename tuple_type<A3>::const_reference m_x; 06808 }; 06809 06810 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06811 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 4> : tuple_type<A4> { 06812 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a4) {} 06813 typename tuple_type<A4>::const_reference get() const { return m_x; } 06814 private: 06815 typename tuple_type<A4>::const_reference m_x; 06816 }; 06817 06818 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06819 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 5> : tuple_type<A5> { 06820 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a5) {} 06821 typename tuple_type<A5>::const_reference get() const { return m_x; } 06822 private: 06823 typename tuple_type<A5>::const_reference m_x; 06824 }; 06825 06826 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06827 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 6> : tuple_type<A6> { 06828 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a6) {} 06829 typename tuple_type<A6>::const_reference get() const { return m_x; } 06830 private: 06831 typename tuple_type<A6>::const_reference m_x; 06832 }; 06833 06834 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06835 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 7> : tuple_type<A7> { 06836 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a7) {} 06837 typename tuple_type<A7>::const_reference get() const { return m_x; } 06838 private: 06839 typename tuple_type<A7>::const_reference m_x; 06840 }; 06841 06842 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06843 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 8> : tuple_type<A8> { 06844 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a8) {} 06845 typename tuple_type<A8>::const_reference get() const { return m_x; } 06846 private: 06847 typename tuple_type<A8>::const_reference m_x; 06848 }; 06849 06850 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06851 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 9> : tuple_type<A9> { 06852 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a9) {} 06853 typename tuple_type<A9>::const_reference get() const { return m_x; } 06854 private: 06855 typename tuple_type<A9>::const_reference m_x; 06856 }; 06857 06858 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06859 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 10> : tuple_type<A10> { 06860 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a10) {} 06861 typename tuple_type<A10>::const_reference get() const { return m_x; } 06862 private: 06863 typename tuple_type<A10>::const_reference m_x; 06864 }; 06865 06866 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06867 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 11> : tuple_type<A11> { 06868 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a11) {} 06869 typename tuple_type<A11>::const_reference get() const { return m_x; } 06870 private: 06871 typename tuple_type<A11>::const_reference m_x; 06872 }; 06873 06874 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06875 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 12> : tuple_type<A12> { 06876 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a12) {} 06877 typename tuple_type<A12>::const_reference get() const { return m_x; } 06878 private: 06879 typename tuple_type<A12>::const_reference m_x; 06880 }; 06881 06882 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06883 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 13> : tuple_type<A13> { 06884 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a13) {} 06885 typename tuple_type<A13>::const_reference get() const { return m_x; } 06886 private: 06887 typename tuple_type<A13>::const_reference m_x; 06888 }; 06889 06890 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06891 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 14> : tuple_type<A14> { 06892 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a14) {} 06893 typename tuple_type<A14>::const_reference get() const { return m_x; } 06894 private: 06895 typename tuple_type<A14>::const_reference m_x; 06896 }; 06897 06898 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06899 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 15> : tuple_type<A15> { 06900 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a15) {} 06901 typename tuple_type<A15>::const_reference get() const { return m_x; } 06902 private: 06903 typename tuple_type<A15>::const_reference m_x; 06904 }; 06905 06906 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06907 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 16> : tuple_type<A16> { 06908 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a16) {} 06909 typename tuple_type<A16>::const_reference get() const { return m_x; } 06910 private: 06911 typename tuple_type<A16>::const_reference m_x; 06912 }; 06913 06914 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06915 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 17> : tuple_type<A17> { 06916 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a17) {} 06917 typename tuple_type<A17>::const_reference get() const { return m_x; } 06918 private: 06919 typename tuple_type<A17>::const_reference m_x; 06920 }; 06921 06922 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06923 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 18> : tuple_type<A18> { 06924 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a18) {} 06925 typename tuple_type<A18>::const_reference get() const { return m_x; } 06926 private: 06927 typename tuple_type<A18>::const_reference m_x; 06928 }; 06929 06930 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06931 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 19> : tuple_type<A19> { 06932 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a19) {} 06933 typename tuple_type<A19>::const_reference get() const { return m_x; } 06934 private: 06935 typename tuple_type<A19>::const_reference m_x; 06936 }; 06937 06938 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06939 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 20> : tuple_type<A20> { 06940 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a20) {} 06941 typename tuple_type<A20>::const_reference get() const { return m_x; } 06942 private: 06943 typename tuple_type<A20>::const_reference m_x; 06944 }; 06945 06946 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 06947 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 21> : tuple_type<A21> { 06948 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a21) {} 06949 typename tuple_type<A21>::const_reference get() const { return m_x; } 06950 private: 06951 typename tuple_type<A21>::const_reference m_x; 06952 }; 06953 06954 06955 06956 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 06957 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 0> : tuple_type<A0> { 06958 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a0) {} 06959 typename tuple_type<A0>::const_reference get() const { return m_x; } 06960 private: 06961 typename tuple_type<A0>::const_reference m_x; 06962 }; 06963 06964 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 06965 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 1> : tuple_type<A1> { 06966 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a1) {} 06967 typename tuple_type<A1>::const_reference get() const { return m_x; } 06968 private: 06969 typename tuple_type<A1>::const_reference m_x; 06970 }; 06971 06972 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 06973 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 2> : tuple_type<A2> { 06974 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a2) {} 06975 typename tuple_type<A2>::const_reference get() const { return m_x; } 06976 private: 06977 typename tuple_type<A2>::const_reference m_x; 06978 }; 06979 06980 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 06981 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 3> : tuple_type<A3> { 06982 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a3) {} 06983 typename tuple_type<A3>::const_reference get() const { return m_x; } 06984 private: 06985 typename tuple_type<A3>::const_reference m_x; 06986 }; 06987 06988 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 06989 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 4> : tuple_type<A4> { 06990 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a4) {} 06991 typename tuple_type<A4>::const_reference get() const { return m_x; } 06992 private: 06993 typename tuple_type<A4>::const_reference m_x; 06994 }; 06995 06996 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 06997 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 5> : tuple_type<A5> { 06998 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a5) {} 06999 typename tuple_type<A5>::const_reference get() const { return m_x; } 07000 private: 07001 typename tuple_type<A5>::const_reference m_x; 07002 }; 07003 07004 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07005 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 6> : tuple_type<A6> { 07006 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a6) {} 07007 typename tuple_type<A6>::const_reference get() const { return m_x; } 07008 private: 07009 typename tuple_type<A6>::const_reference m_x; 07010 }; 07011 07012 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07013 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 7> : tuple_type<A7> { 07014 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a7) {} 07015 typename tuple_type<A7>::const_reference get() const { return m_x; } 07016 private: 07017 typename tuple_type<A7>::const_reference m_x; 07018 }; 07019 07020 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07021 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 8> : tuple_type<A8> { 07022 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a8) {} 07023 typename tuple_type<A8>::const_reference get() const { return m_x; } 07024 private: 07025 typename tuple_type<A8>::const_reference m_x; 07026 }; 07027 07028 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07029 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 9> : tuple_type<A9> { 07030 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a9) {} 07031 typename tuple_type<A9>::const_reference get() const { return m_x; } 07032 private: 07033 typename tuple_type<A9>::const_reference m_x; 07034 }; 07035 07036 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07037 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 10> : tuple_type<A10> { 07038 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a10) {} 07039 typename tuple_type<A10>::const_reference get() const { return m_x; } 07040 private: 07041 typename tuple_type<A10>::const_reference m_x; 07042 }; 07043 07044 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07045 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 11> : tuple_type<A11> { 07046 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a11) {} 07047 typename tuple_type<A11>::const_reference get() const { return m_x; } 07048 private: 07049 typename tuple_type<A11>::const_reference m_x; 07050 }; 07051 07052 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07053 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 12> : tuple_type<A12> { 07054 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a12) {} 07055 typename tuple_type<A12>::const_reference get() const { return m_x; } 07056 private: 07057 typename tuple_type<A12>::const_reference m_x; 07058 }; 07059 07060 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07061 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 13> : tuple_type<A13> { 07062 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a13) {} 07063 typename tuple_type<A13>::const_reference get() const { return m_x; } 07064 private: 07065 typename tuple_type<A13>::const_reference m_x; 07066 }; 07067 07068 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07069 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 14> : tuple_type<A14> { 07070 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a14) {} 07071 typename tuple_type<A14>::const_reference get() const { return m_x; } 07072 private: 07073 typename tuple_type<A14>::const_reference m_x; 07074 }; 07075 07076 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07077 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 15> : tuple_type<A15> { 07078 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a15) {} 07079 typename tuple_type<A15>::const_reference get() const { return m_x; } 07080 private: 07081 typename tuple_type<A15>::const_reference m_x; 07082 }; 07083 07084 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07085 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 16> : tuple_type<A16> { 07086 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a16) {} 07087 typename tuple_type<A16>::const_reference get() const { return m_x; } 07088 private: 07089 typename tuple_type<A16>::const_reference m_x; 07090 }; 07091 07092 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07093 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 17> : tuple_type<A17> { 07094 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a17) {} 07095 typename tuple_type<A17>::const_reference get() const { return m_x; } 07096 private: 07097 typename tuple_type<A17>::const_reference m_x; 07098 }; 07099 07100 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07101 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 18> : tuple_type<A18> { 07102 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a18) {} 07103 typename tuple_type<A18>::const_reference get() const { return m_x; } 07104 private: 07105 typename tuple_type<A18>::const_reference m_x; 07106 }; 07107 07108 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07109 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 19> : tuple_type<A19> { 07110 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a19) {} 07111 typename tuple_type<A19>::const_reference get() const { return m_x; } 07112 private: 07113 typename tuple_type<A19>::const_reference m_x; 07114 }; 07115 07116 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07117 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 20> : tuple_type<A20> { 07118 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a20) {} 07119 typename tuple_type<A20>::const_reference get() const { return m_x; } 07120 private: 07121 typename tuple_type<A20>::const_reference m_x; 07122 }; 07123 07124 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07125 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 21> : tuple_type<A21> { 07126 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a21) {} 07127 typename tuple_type<A21>::const_reference get() const { return m_x; } 07128 private: 07129 typename tuple_type<A21>::const_reference m_x; 07130 }; 07131 07132 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 07133 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 22> : tuple_type<A22> { 07134 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a22) {} 07135 typename tuple_type<A22>::const_reference get() const { return m_x; } 07136 private: 07137 typename tuple_type<A22>::const_reference m_x; 07138 }; 07139 07140 07141 07142 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07143 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 0> : tuple_type<A0> { 07144 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a0) {} 07145 typename tuple_type<A0>::const_reference get() const { return m_x; } 07146 private: 07147 typename tuple_type<A0>::const_reference m_x; 07148 }; 07149 07150 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07151 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 1> : tuple_type<A1> { 07152 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a1) {} 07153 typename tuple_type<A1>::const_reference get() const { return m_x; } 07154 private: 07155 typename tuple_type<A1>::const_reference m_x; 07156 }; 07157 07158 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07159 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 2> : tuple_type<A2> { 07160 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a2) {} 07161 typename tuple_type<A2>::const_reference get() const { return m_x; } 07162 private: 07163 typename tuple_type<A2>::const_reference m_x; 07164 }; 07165 07166 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07167 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 3> : tuple_type<A3> { 07168 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a3) {} 07169 typename tuple_type<A3>::const_reference get() const { return m_x; } 07170 private: 07171 typename tuple_type<A3>::const_reference m_x; 07172 }; 07173 07174 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07175 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 4> : tuple_type<A4> { 07176 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a4) {} 07177 typename tuple_type<A4>::const_reference get() const { return m_x; } 07178 private: 07179 typename tuple_type<A4>::const_reference m_x; 07180 }; 07181 07182 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07183 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 5> : tuple_type<A5> { 07184 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a5) {} 07185 typename tuple_type<A5>::const_reference get() const { return m_x; } 07186 private: 07187 typename tuple_type<A5>::const_reference m_x; 07188 }; 07189 07190 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07191 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 6> : tuple_type<A6> { 07192 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a6) {} 07193 typename tuple_type<A6>::const_reference get() const { return m_x; } 07194 private: 07195 typename tuple_type<A6>::const_reference m_x; 07196 }; 07197 07198 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07199 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 7> : tuple_type<A7> { 07200 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a7) {} 07201 typename tuple_type<A7>::const_reference get() const { return m_x; } 07202 private: 07203 typename tuple_type<A7>::const_reference m_x; 07204 }; 07205 07206 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07207 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 8> : tuple_type<A8> { 07208 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a8) {} 07209 typename tuple_type<A8>::const_reference get() const { return m_x; } 07210 private: 07211 typename tuple_type<A8>::const_reference m_x; 07212 }; 07213 07214 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07215 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 9> : tuple_type<A9> { 07216 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a9) {} 07217 typename tuple_type<A9>::const_reference get() const { return m_x; } 07218 private: 07219 typename tuple_type<A9>::const_reference m_x; 07220 }; 07221 07222 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07223 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 10> : tuple_type<A10> { 07224 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a10) {} 07225 typename tuple_type<A10>::const_reference get() const { return m_x; } 07226 private: 07227 typename tuple_type<A10>::const_reference m_x; 07228 }; 07229 07230 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07231 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 11> : tuple_type<A11> { 07232 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a11) {} 07233 typename tuple_type<A11>::const_reference get() const { return m_x; } 07234 private: 07235 typename tuple_type<A11>::const_reference m_x; 07236 }; 07237 07238 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07239 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 12> : tuple_type<A12> { 07240 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a12) {} 07241 typename tuple_type<A12>::const_reference get() const { return m_x; } 07242 private: 07243 typename tuple_type<A12>::const_reference m_x; 07244 }; 07245 07246 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07247 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 13> : tuple_type<A13> { 07248 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a13) {} 07249 typename tuple_type<A13>::const_reference get() const { return m_x; } 07250 private: 07251 typename tuple_type<A13>::const_reference m_x; 07252 }; 07253 07254 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07255 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 14> : tuple_type<A14> { 07256 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a14) {} 07257 typename tuple_type<A14>::const_reference get() const { return m_x; } 07258 private: 07259 typename tuple_type<A14>::const_reference m_x; 07260 }; 07261 07262 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07263 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 15> : tuple_type<A15> { 07264 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a15) {} 07265 typename tuple_type<A15>::const_reference get() const { return m_x; } 07266 private: 07267 typename tuple_type<A15>::const_reference m_x; 07268 }; 07269 07270 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07271 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 16> : tuple_type<A16> { 07272 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a16) {} 07273 typename tuple_type<A16>::const_reference get() const { return m_x; } 07274 private: 07275 typename tuple_type<A16>::const_reference m_x; 07276 }; 07277 07278 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07279 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 17> : tuple_type<A17> { 07280 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a17) {} 07281 typename tuple_type<A17>::const_reference get() const { return m_x; } 07282 private: 07283 typename tuple_type<A17>::const_reference m_x; 07284 }; 07285 07286 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07287 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 18> : tuple_type<A18> { 07288 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a18) {} 07289 typename tuple_type<A18>::const_reference get() const { return m_x; } 07290 private: 07291 typename tuple_type<A18>::const_reference m_x; 07292 }; 07293 07294 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07295 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 19> : tuple_type<A19> { 07296 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a19) {} 07297 typename tuple_type<A19>::const_reference get() const { return m_x; } 07298 private: 07299 typename tuple_type<A19>::const_reference m_x; 07300 }; 07301 07302 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07303 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 20> : tuple_type<A20> { 07304 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a20) {} 07305 typename tuple_type<A20>::const_reference get() const { return m_x; } 07306 private: 07307 typename tuple_type<A20>::const_reference m_x; 07308 }; 07309 07310 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07311 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 21> : tuple_type<A21> { 07312 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a21) {} 07313 typename tuple_type<A21>::const_reference get() const { return m_x; } 07314 private: 07315 typename tuple_type<A21>::const_reference m_x; 07316 }; 07317 07318 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07319 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 22> : tuple_type<A22> { 07320 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a22) {} 07321 typename tuple_type<A22>::const_reference get() const { return m_x; } 07322 private: 07323 typename tuple_type<A22>::const_reference m_x; 07324 }; 07325 07326 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 07327 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 23> : tuple_type<A23> { 07328 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a23) {} 07329 typename tuple_type<A23>::const_reference get() const { return m_x; } 07330 private: 07331 typename tuple_type<A23>::const_reference m_x; 07332 }; 07333 07334 07335 07336 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07337 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 0> : tuple_type<A0> { 07338 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a0) {} 07339 typename tuple_type<A0>::const_reference get() const { return m_x; } 07340 private: 07341 typename tuple_type<A0>::const_reference m_x; 07342 }; 07343 07344 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07345 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 1> : tuple_type<A1> { 07346 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a1) {} 07347 typename tuple_type<A1>::const_reference get() const { return m_x; } 07348 private: 07349 typename tuple_type<A1>::const_reference m_x; 07350 }; 07351 07352 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07353 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 2> : tuple_type<A2> { 07354 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a2) {} 07355 typename tuple_type<A2>::const_reference get() const { return m_x; } 07356 private: 07357 typename tuple_type<A2>::const_reference m_x; 07358 }; 07359 07360 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07361 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 3> : tuple_type<A3> { 07362 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a3) {} 07363 typename tuple_type<A3>::const_reference get() const { return m_x; } 07364 private: 07365 typename tuple_type<A3>::const_reference m_x; 07366 }; 07367 07368 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07369 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 4> : tuple_type<A4> { 07370 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a4) {} 07371 typename tuple_type<A4>::const_reference get() const { return m_x; } 07372 private: 07373 typename tuple_type<A4>::const_reference m_x; 07374 }; 07375 07376 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07377 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 5> : tuple_type<A5> { 07378 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a5) {} 07379 typename tuple_type<A5>::const_reference get() const { return m_x; } 07380 private: 07381 typename tuple_type<A5>::const_reference m_x; 07382 }; 07383 07384 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07385 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 6> : tuple_type<A6> { 07386 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a6) {} 07387 typename tuple_type<A6>::const_reference get() const { return m_x; } 07388 private: 07389 typename tuple_type<A6>::const_reference m_x; 07390 }; 07391 07392 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07393 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 7> : tuple_type<A7> { 07394 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a7) {} 07395 typename tuple_type<A7>::const_reference get() const { return m_x; } 07396 private: 07397 typename tuple_type<A7>::const_reference m_x; 07398 }; 07399 07400 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07401 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 8> : tuple_type<A8> { 07402 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a8) {} 07403 typename tuple_type<A8>::const_reference get() const { return m_x; } 07404 private: 07405 typename tuple_type<A8>::const_reference m_x; 07406 }; 07407 07408 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07409 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 9> : tuple_type<A9> { 07410 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a9) {} 07411 typename tuple_type<A9>::const_reference get() const { return m_x; } 07412 private: 07413 typename tuple_type<A9>::const_reference m_x; 07414 }; 07415 07416 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07417 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 10> : tuple_type<A10> { 07418 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a10) {} 07419 typename tuple_type<A10>::const_reference get() const { return m_x; } 07420 private: 07421 typename tuple_type<A10>::const_reference m_x; 07422 }; 07423 07424 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07425 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 11> : tuple_type<A11> { 07426 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a11) {} 07427 typename tuple_type<A11>::const_reference get() const { return m_x; } 07428 private: 07429 typename tuple_type<A11>::const_reference m_x; 07430 }; 07431 07432 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07433 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 12> : tuple_type<A12> { 07434 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a12) {} 07435 typename tuple_type<A12>::const_reference get() const { return m_x; } 07436 private: 07437 typename tuple_type<A12>::const_reference m_x; 07438 }; 07439 07440 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07441 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 13> : tuple_type<A13> { 07442 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a13) {} 07443 typename tuple_type<A13>::const_reference get() const { return m_x; } 07444 private: 07445 typename tuple_type<A13>::const_reference m_x; 07446 }; 07447 07448 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07449 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 14> : tuple_type<A14> { 07450 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a14) {} 07451 typename tuple_type<A14>::const_reference get() const { return m_x; } 07452 private: 07453 typename tuple_type<A14>::const_reference m_x; 07454 }; 07455 07456 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07457 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 15> : tuple_type<A15> { 07458 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a15) {} 07459 typename tuple_type<A15>::const_reference get() const { return m_x; } 07460 private: 07461 typename tuple_type<A15>::const_reference m_x; 07462 }; 07463 07464 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07465 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 16> : tuple_type<A16> { 07466 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a16) {} 07467 typename tuple_type<A16>::const_reference get() const { return m_x; } 07468 private: 07469 typename tuple_type<A16>::const_reference m_x; 07470 }; 07471 07472 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07473 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 17> : tuple_type<A17> { 07474 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a17) {} 07475 typename tuple_type<A17>::const_reference get() const { return m_x; } 07476 private: 07477 typename tuple_type<A17>::const_reference m_x; 07478 }; 07479 07480 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07481 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 18> : tuple_type<A18> { 07482 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a18) {} 07483 typename tuple_type<A18>::const_reference get() const { return m_x; } 07484 private: 07485 typename tuple_type<A18>::const_reference m_x; 07486 }; 07487 07488 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07489 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 19> : tuple_type<A19> { 07490 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a19) {} 07491 typename tuple_type<A19>::const_reference get() const { return m_x; } 07492 private: 07493 typename tuple_type<A19>::const_reference m_x; 07494 }; 07495 07496 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07497 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 20> : tuple_type<A20> { 07498 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a20) {} 07499 typename tuple_type<A20>::const_reference get() const { return m_x; } 07500 private: 07501 typename tuple_type<A20>::const_reference m_x; 07502 }; 07503 07504 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07505 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 21> : tuple_type<A21> { 07506 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a21) {} 07507 typename tuple_type<A21>::const_reference get() const { return m_x; } 07508 private: 07509 typename tuple_type<A21>::const_reference m_x; 07510 }; 07511 07512 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07513 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 22> : tuple_type<A22> { 07514 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a22) {} 07515 typename tuple_type<A22>::const_reference get() const { return m_x; } 07516 private: 07517 typename tuple_type<A22>::const_reference m_x; 07518 }; 07519 07520 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07521 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 23> : tuple_type<A23> { 07522 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a23) {} 07523 typename tuple_type<A23>::const_reference get() const { return m_x; } 07524 private: 07525 typename tuple_type<A23>::const_reference m_x; 07526 }; 07527 07528 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 07529 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 24> : tuple_type<A24> { 07530 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a24) {} 07531 typename tuple_type<A24>::const_reference get() const { return m_x; } 07532 private: 07533 typename tuple_type<A24>::const_reference m_x; 07534 }; 07535 07536 07537 07538 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07539 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 0> : tuple_type<A0> { 07540 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a0) {} 07541 typename tuple_type<A0>::const_reference get() const { return m_x; } 07542 private: 07543 typename tuple_type<A0>::const_reference m_x; 07544 }; 07545 07546 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07547 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 1> : tuple_type<A1> { 07548 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a1) {} 07549 typename tuple_type<A1>::const_reference get() const { return m_x; } 07550 private: 07551 typename tuple_type<A1>::const_reference m_x; 07552 }; 07553 07554 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07555 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 2> : tuple_type<A2> { 07556 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a2) {} 07557 typename tuple_type<A2>::const_reference get() const { return m_x; } 07558 private: 07559 typename tuple_type<A2>::const_reference m_x; 07560 }; 07561 07562 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07563 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 3> : tuple_type<A3> { 07564 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a3) {} 07565 typename tuple_type<A3>::const_reference get() const { return m_x; } 07566 private: 07567 typename tuple_type<A3>::const_reference m_x; 07568 }; 07569 07570 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07571 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 4> : tuple_type<A4> { 07572 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a4) {} 07573 typename tuple_type<A4>::const_reference get() const { return m_x; } 07574 private: 07575 typename tuple_type<A4>::const_reference m_x; 07576 }; 07577 07578 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07579 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 5> : tuple_type<A5> { 07580 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a5) {} 07581 typename tuple_type<A5>::const_reference get() const { return m_x; } 07582 private: 07583 typename tuple_type<A5>::const_reference m_x; 07584 }; 07585 07586 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07587 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 6> : tuple_type<A6> { 07588 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a6) {} 07589 typename tuple_type<A6>::const_reference get() const { return m_x; } 07590 private: 07591 typename tuple_type<A6>::const_reference m_x; 07592 }; 07593 07594 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07595 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 7> : tuple_type<A7> { 07596 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a7) {} 07597 typename tuple_type<A7>::const_reference get() const { return m_x; } 07598 private: 07599 typename tuple_type<A7>::const_reference m_x; 07600 }; 07601 07602 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07603 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 8> : tuple_type<A8> { 07604 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a8) {} 07605 typename tuple_type<A8>::const_reference get() const { return m_x; } 07606 private: 07607 typename tuple_type<A8>::const_reference m_x; 07608 }; 07609 07610 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07611 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 9> : tuple_type<A9> { 07612 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a9) {} 07613 typename tuple_type<A9>::const_reference get() const { return m_x; } 07614 private: 07615 typename tuple_type<A9>::const_reference m_x; 07616 }; 07617 07618 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07619 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 10> : tuple_type<A10> { 07620 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a10) {} 07621 typename tuple_type<A10>::const_reference get() const { return m_x; } 07622 private: 07623 typename tuple_type<A10>::const_reference m_x; 07624 }; 07625 07626 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07627 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 11> : tuple_type<A11> { 07628 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a11) {} 07629 typename tuple_type<A11>::const_reference get() const { return m_x; } 07630 private: 07631 typename tuple_type<A11>::const_reference m_x; 07632 }; 07633 07634 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07635 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 12> : tuple_type<A12> { 07636 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a12) {} 07637 typename tuple_type<A12>::const_reference get() const { return m_x; } 07638 private: 07639 typename tuple_type<A12>::const_reference m_x; 07640 }; 07641 07642 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07643 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 13> : tuple_type<A13> { 07644 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a13) {} 07645 typename tuple_type<A13>::const_reference get() const { return m_x; } 07646 private: 07647 typename tuple_type<A13>::const_reference m_x; 07648 }; 07649 07650 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07651 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 14> : tuple_type<A14> { 07652 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a14) {} 07653 typename tuple_type<A14>::const_reference get() const { return m_x; } 07654 private: 07655 typename tuple_type<A14>::const_reference m_x; 07656 }; 07657 07658 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07659 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 15> : tuple_type<A15> { 07660 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a15) {} 07661 typename tuple_type<A15>::const_reference get() const { return m_x; } 07662 private: 07663 typename tuple_type<A15>::const_reference m_x; 07664 }; 07665 07666 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07667 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 16> : tuple_type<A16> { 07668 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a16) {} 07669 typename tuple_type<A16>::const_reference get() const { return m_x; } 07670 private: 07671 typename tuple_type<A16>::const_reference m_x; 07672 }; 07673 07674 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07675 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 17> : tuple_type<A17> { 07676 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a17) {} 07677 typename tuple_type<A17>::const_reference get() const { return m_x; } 07678 private: 07679 typename tuple_type<A17>::const_reference m_x; 07680 }; 07681 07682 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07683 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 18> : tuple_type<A18> { 07684 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a18) {} 07685 typename tuple_type<A18>::const_reference get() const { return m_x; } 07686 private: 07687 typename tuple_type<A18>::const_reference m_x; 07688 }; 07689 07690 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07691 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 19> : tuple_type<A19> { 07692 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a19) {} 07693 typename tuple_type<A19>::const_reference get() const { return m_x; } 07694 private: 07695 typename tuple_type<A19>::const_reference m_x; 07696 }; 07697 07698 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07699 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 20> : tuple_type<A20> { 07700 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a20) {} 07701 typename tuple_type<A20>::const_reference get() const { return m_x; } 07702 private: 07703 typename tuple_type<A20>::const_reference m_x; 07704 }; 07705 07706 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07707 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 21> : tuple_type<A21> { 07708 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a21) {} 07709 typename tuple_type<A21>::const_reference get() const { return m_x; } 07710 private: 07711 typename tuple_type<A21>::const_reference m_x; 07712 }; 07713 07714 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07715 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 22> : tuple_type<A22> { 07716 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a22) {} 07717 typename tuple_type<A22>::const_reference get() const { return m_x; } 07718 private: 07719 typename tuple_type<A22>::const_reference m_x; 07720 }; 07721 07722 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07723 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 23> : tuple_type<A23> { 07724 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a23) {} 07725 typename tuple_type<A23>::const_reference get() const { return m_x; } 07726 private: 07727 typename tuple_type<A23>::const_reference m_x; 07728 }; 07729 07730 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07731 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 24> : tuple_type<A24> { 07732 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a24) {} 07733 typename tuple_type<A24>::const_reference get() const { return m_x; } 07734 private: 07735 typename tuple_type<A24>::const_reference m_x; 07736 }; 07737 07738 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 07739 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 25> : tuple_type<A25> { 07740 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a25) {} 07741 typename tuple_type<A25>::const_reference get() const { return m_x; } 07742 private: 07743 typename tuple_type<A25>::const_reference m_x; 07744 }; 07745 07746 07747 07748 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07749 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 0> : tuple_type<A0> { 07750 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a0) {} 07751 typename tuple_type<A0>::const_reference get() const { return m_x; } 07752 private: 07753 typename tuple_type<A0>::const_reference m_x; 07754 }; 07755 07756 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07757 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 1> : tuple_type<A1> { 07758 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a1) {} 07759 typename tuple_type<A1>::const_reference get() const { return m_x; } 07760 private: 07761 typename tuple_type<A1>::const_reference m_x; 07762 }; 07763 07764 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07765 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 2> : tuple_type<A2> { 07766 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a2) {} 07767 typename tuple_type<A2>::const_reference get() const { return m_x; } 07768 private: 07769 typename tuple_type<A2>::const_reference m_x; 07770 }; 07771 07772 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07773 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 3> : tuple_type<A3> { 07774 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a3) {} 07775 typename tuple_type<A3>::const_reference get() const { return m_x; } 07776 private: 07777 typename tuple_type<A3>::const_reference m_x; 07778 }; 07779 07780 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07781 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 4> : tuple_type<A4> { 07782 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a4) {} 07783 typename tuple_type<A4>::const_reference get() const { return m_x; } 07784 private: 07785 typename tuple_type<A4>::const_reference m_x; 07786 }; 07787 07788 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07789 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 5> : tuple_type<A5> { 07790 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a5) {} 07791 typename tuple_type<A5>::const_reference get() const { return m_x; } 07792 private: 07793 typename tuple_type<A5>::const_reference m_x; 07794 }; 07795 07796 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07797 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 6> : tuple_type<A6> { 07798 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a6) {} 07799 typename tuple_type<A6>::const_reference get() const { return m_x; } 07800 private: 07801 typename tuple_type<A6>::const_reference m_x; 07802 }; 07803 07804 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07805 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 7> : tuple_type<A7> { 07806 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a7) {} 07807 typename tuple_type<A7>::const_reference get() const { return m_x; } 07808 private: 07809 typename tuple_type<A7>::const_reference m_x; 07810 }; 07811 07812 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07813 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 8> : tuple_type<A8> { 07814 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a8) {} 07815 typename tuple_type<A8>::const_reference get() const { return m_x; } 07816 private: 07817 typename tuple_type<A8>::const_reference m_x; 07818 }; 07819 07820 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07821 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 9> : tuple_type<A9> { 07822 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a9) {} 07823 typename tuple_type<A9>::const_reference get() const { return m_x; } 07824 private: 07825 typename tuple_type<A9>::const_reference m_x; 07826 }; 07827 07828 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07829 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 10> : tuple_type<A10> { 07830 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a10) {} 07831 typename tuple_type<A10>::const_reference get() const { return m_x; } 07832 private: 07833 typename tuple_type<A10>::const_reference m_x; 07834 }; 07835 07836 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07837 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 11> : tuple_type<A11> { 07838 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a11) {} 07839 typename tuple_type<A11>::const_reference get() const { return m_x; } 07840 private: 07841 typename tuple_type<A11>::const_reference m_x; 07842 }; 07843 07844 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07845 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 12> : tuple_type<A12> { 07846 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a12) {} 07847 typename tuple_type<A12>::const_reference get() const { return m_x; } 07848 private: 07849 typename tuple_type<A12>::const_reference m_x; 07850 }; 07851 07852 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07853 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 13> : tuple_type<A13> { 07854 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a13) {} 07855 typename tuple_type<A13>::const_reference get() const { return m_x; } 07856 private: 07857 typename tuple_type<A13>::const_reference m_x; 07858 }; 07859 07860 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07861 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 14> : tuple_type<A14> { 07862 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a14) {} 07863 typename tuple_type<A14>::const_reference get() const { return m_x; } 07864 private: 07865 typename tuple_type<A14>::const_reference m_x; 07866 }; 07867 07868 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07869 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 15> : tuple_type<A15> { 07870 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a15) {} 07871 typename tuple_type<A15>::const_reference get() const { return m_x; } 07872 private: 07873 typename tuple_type<A15>::const_reference m_x; 07874 }; 07875 07876 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07877 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 16> : tuple_type<A16> { 07878 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a16) {} 07879 typename tuple_type<A16>::const_reference get() const { return m_x; } 07880 private: 07881 typename tuple_type<A16>::const_reference m_x; 07882 }; 07883 07884 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07885 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 17> : tuple_type<A17> { 07886 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a17) {} 07887 typename tuple_type<A17>::const_reference get() const { return m_x; } 07888 private: 07889 typename tuple_type<A17>::const_reference m_x; 07890 }; 07891 07892 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07893 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 18> : tuple_type<A18> { 07894 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a18) {} 07895 typename tuple_type<A18>::const_reference get() const { return m_x; } 07896 private: 07897 typename tuple_type<A18>::const_reference m_x; 07898 }; 07899 07900 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07901 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 19> : tuple_type<A19> { 07902 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a19) {} 07903 typename tuple_type<A19>::const_reference get() const { return m_x; } 07904 private: 07905 typename tuple_type<A19>::const_reference m_x; 07906 }; 07907 07908 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07909 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 20> : tuple_type<A20> { 07910 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a20) {} 07911 typename tuple_type<A20>::const_reference get() const { return m_x; } 07912 private: 07913 typename tuple_type<A20>::const_reference m_x; 07914 }; 07915 07916 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07917 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 21> : tuple_type<A21> { 07918 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a21) {} 07919 typename tuple_type<A21>::const_reference get() const { return m_x; } 07920 private: 07921 typename tuple_type<A21>::const_reference m_x; 07922 }; 07923 07924 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07925 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 22> : tuple_type<A22> { 07926 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a22) {} 07927 typename tuple_type<A22>::const_reference get() const { return m_x; } 07928 private: 07929 typename tuple_type<A22>::const_reference m_x; 07930 }; 07931 07932 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07933 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 23> : tuple_type<A23> { 07934 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a23) {} 07935 typename tuple_type<A23>::const_reference get() const { return m_x; } 07936 private: 07937 typename tuple_type<A23>::const_reference m_x; 07938 }; 07939 07940 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07941 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 24> : tuple_type<A24> { 07942 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a24) {} 07943 typename tuple_type<A24>::const_reference get() const { return m_x; } 07944 private: 07945 typename tuple_type<A24>::const_reference m_x; 07946 }; 07947 07948 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07949 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 25> : tuple_type<A25> { 07950 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a25) {} 07951 typename tuple_type<A25>::const_reference get() const { return m_x; } 07952 private: 07953 typename tuple_type<A25>::const_reference m_x; 07954 }; 07955 07956 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 07957 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 26> : tuple_type<A26> { 07958 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a26) {} 07959 typename tuple_type<A26>::const_reference get() const { return m_x; } 07960 private: 07961 typename tuple_type<A26>::const_reference m_x; 07962 }; 07963 07964 07965 07966 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 07967 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 0> : tuple_type<A0> { 07968 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a0) {} 07969 typename tuple_type<A0>::const_reference get() const { return m_x; } 07970 private: 07971 typename tuple_type<A0>::const_reference m_x; 07972 }; 07973 07974 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 07975 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 1> : tuple_type<A1> { 07976 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a1) {} 07977 typename tuple_type<A1>::const_reference get() const { return m_x; } 07978 private: 07979 typename tuple_type<A1>::const_reference m_x; 07980 }; 07981 07982 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 07983 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 2> : tuple_type<A2> { 07984 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a2) {} 07985 typename tuple_type<A2>::const_reference get() const { return m_x; } 07986 private: 07987 typename tuple_type<A2>::const_reference m_x; 07988 }; 07989 07990 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 07991 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 3> : tuple_type<A3> { 07992 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a3) {} 07993 typename tuple_type<A3>::const_reference get() const { return m_x; } 07994 private: 07995 typename tuple_type<A3>::const_reference m_x; 07996 }; 07997 07998 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 07999 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 4> : tuple_type<A4> { 08000 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a4) {} 08001 typename tuple_type<A4>::const_reference get() const { return m_x; } 08002 private: 08003 typename tuple_type<A4>::const_reference m_x; 08004 }; 08005 08006 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08007 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 5> : tuple_type<A5> { 08008 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a5) {} 08009 typename tuple_type<A5>::const_reference get() const { return m_x; } 08010 private: 08011 typename tuple_type<A5>::const_reference m_x; 08012 }; 08013 08014 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08015 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 6> : tuple_type<A6> { 08016 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a6) {} 08017 typename tuple_type<A6>::const_reference get() const { return m_x; } 08018 private: 08019 typename tuple_type<A6>::const_reference m_x; 08020 }; 08021 08022 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08023 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 7> : tuple_type<A7> { 08024 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a7) {} 08025 typename tuple_type<A7>::const_reference get() const { return m_x; } 08026 private: 08027 typename tuple_type<A7>::const_reference m_x; 08028 }; 08029 08030 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08031 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 8> : tuple_type<A8> { 08032 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a8) {} 08033 typename tuple_type<A8>::const_reference get() const { return m_x; } 08034 private: 08035 typename tuple_type<A8>::const_reference m_x; 08036 }; 08037 08038 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08039 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 9> : tuple_type<A9> { 08040 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a9) {} 08041 typename tuple_type<A9>::const_reference get() const { return m_x; } 08042 private: 08043 typename tuple_type<A9>::const_reference m_x; 08044 }; 08045 08046 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08047 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 10> : tuple_type<A10> { 08048 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a10) {} 08049 typename tuple_type<A10>::const_reference get() const { return m_x; } 08050 private: 08051 typename tuple_type<A10>::const_reference m_x; 08052 }; 08053 08054 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08055 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 11> : tuple_type<A11> { 08056 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a11) {} 08057 typename tuple_type<A11>::const_reference get() const { return m_x; } 08058 private: 08059 typename tuple_type<A11>::const_reference m_x; 08060 }; 08061 08062 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08063 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 12> : tuple_type<A12> { 08064 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a12) {} 08065 typename tuple_type<A12>::const_reference get() const { return m_x; } 08066 private: 08067 typename tuple_type<A12>::const_reference m_x; 08068 }; 08069 08070 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08071 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 13> : tuple_type<A13> { 08072 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a13) {} 08073 typename tuple_type<A13>::const_reference get() const { return m_x; } 08074 private: 08075 typename tuple_type<A13>::const_reference m_x; 08076 }; 08077 08078 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08079 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 14> : tuple_type<A14> { 08080 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a14) {} 08081 typename tuple_type<A14>::const_reference get() const { return m_x; } 08082 private: 08083 typename tuple_type<A14>::const_reference m_x; 08084 }; 08085 08086 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08087 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 15> : tuple_type<A15> { 08088 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a15) {} 08089 typename tuple_type<A15>::const_reference get() const { return m_x; } 08090 private: 08091 typename tuple_type<A15>::const_reference m_x; 08092 }; 08093 08094 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08095 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 16> : tuple_type<A16> { 08096 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a16) {} 08097 typename tuple_type<A16>::const_reference get() const { return m_x; } 08098 private: 08099 typename tuple_type<A16>::const_reference m_x; 08100 }; 08101 08102 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08103 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 17> : tuple_type<A17> { 08104 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a17) {} 08105 typename tuple_type<A17>::const_reference get() const { return m_x; } 08106 private: 08107 typename tuple_type<A17>::const_reference m_x; 08108 }; 08109 08110 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08111 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 18> : tuple_type<A18> { 08112 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a18) {} 08113 typename tuple_type<A18>::const_reference get() const { return m_x; } 08114 private: 08115 typename tuple_type<A18>::const_reference m_x; 08116 }; 08117 08118 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08119 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 19> : tuple_type<A19> { 08120 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a19) {} 08121 typename tuple_type<A19>::const_reference get() const { return m_x; } 08122 private: 08123 typename tuple_type<A19>::const_reference m_x; 08124 }; 08125 08126 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08127 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 20> : tuple_type<A20> { 08128 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a20) {} 08129 typename tuple_type<A20>::const_reference get() const { return m_x; } 08130 private: 08131 typename tuple_type<A20>::const_reference m_x; 08132 }; 08133 08134 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08135 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 21> : tuple_type<A21> { 08136 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a21) {} 08137 typename tuple_type<A21>::const_reference get() const { return m_x; } 08138 private: 08139 typename tuple_type<A21>::const_reference m_x; 08140 }; 08141 08142 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08143 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 22> : tuple_type<A22> { 08144 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a22) {} 08145 typename tuple_type<A22>::const_reference get() const { return m_x; } 08146 private: 08147 typename tuple_type<A22>::const_reference m_x; 08148 }; 08149 08150 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08151 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 23> : tuple_type<A23> { 08152 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a23) {} 08153 typename tuple_type<A23>::const_reference get() const { return m_x; } 08154 private: 08155 typename tuple_type<A23>::const_reference m_x; 08156 }; 08157 08158 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08159 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 24> : tuple_type<A24> { 08160 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a24) {} 08161 typename tuple_type<A24>::const_reference get() const { return m_x; } 08162 private: 08163 typename tuple_type<A24>::const_reference m_x; 08164 }; 08165 08166 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08167 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 25> : tuple_type<A25> { 08168 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a25) {} 08169 typename tuple_type<A25>::const_reference get() const { return m_x; } 08170 private: 08171 typename tuple_type<A25>::const_reference m_x; 08172 }; 08173 08174 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08175 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 26> : tuple_type<A26> { 08176 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a26) {} 08177 typename tuple_type<A26>::const_reference get() const { return m_x; } 08178 private: 08179 typename tuple_type<A26>::const_reference m_x; 08180 }; 08181 08182 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 08183 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 27> : tuple_type<A27> { 08184 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a27) {} 08185 typename tuple_type<A27>::const_reference get() const { return m_x; } 08186 private: 08187 typename tuple_type<A27>::const_reference m_x; 08188 }; 08189 08190 08191 08192 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08193 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 0> : tuple_type<A0> { 08194 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a0) {} 08195 typename tuple_type<A0>::const_reference get() const { return m_x; } 08196 private: 08197 typename tuple_type<A0>::const_reference m_x; 08198 }; 08199 08200 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08201 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 1> : tuple_type<A1> { 08202 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a1) {} 08203 typename tuple_type<A1>::const_reference get() const { return m_x; } 08204 private: 08205 typename tuple_type<A1>::const_reference m_x; 08206 }; 08207 08208 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08209 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 2> : tuple_type<A2> { 08210 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a2) {} 08211 typename tuple_type<A2>::const_reference get() const { return m_x; } 08212 private: 08213 typename tuple_type<A2>::const_reference m_x; 08214 }; 08215 08216 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08217 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 3> : tuple_type<A3> { 08218 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a3) {} 08219 typename tuple_type<A3>::const_reference get() const { return m_x; } 08220 private: 08221 typename tuple_type<A3>::const_reference m_x; 08222 }; 08223 08224 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08225 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 4> : tuple_type<A4> { 08226 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a4) {} 08227 typename tuple_type<A4>::const_reference get() const { return m_x; } 08228 private: 08229 typename tuple_type<A4>::const_reference m_x; 08230 }; 08231 08232 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08233 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 5> : tuple_type<A5> { 08234 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a5) {} 08235 typename tuple_type<A5>::const_reference get() const { return m_x; } 08236 private: 08237 typename tuple_type<A5>::const_reference m_x; 08238 }; 08239 08240 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08241 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 6> : tuple_type<A6> { 08242 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a6) {} 08243 typename tuple_type<A6>::const_reference get() const { return m_x; } 08244 private: 08245 typename tuple_type<A6>::const_reference m_x; 08246 }; 08247 08248 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08249 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 7> : tuple_type<A7> { 08250 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a7) {} 08251 typename tuple_type<A7>::const_reference get() const { return m_x; } 08252 private: 08253 typename tuple_type<A7>::const_reference m_x; 08254 }; 08255 08256 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08257 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 8> : tuple_type<A8> { 08258 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a8) {} 08259 typename tuple_type<A8>::const_reference get() const { return m_x; } 08260 private: 08261 typename tuple_type<A8>::const_reference m_x; 08262 }; 08263 08264 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08265 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 9> : tuple_type<A9> { 08266 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a9) {} 08267 typename tuple_type<A9>::const_reference get() const { return m_x; } 08268 private: 08269 typename tuple_type<A9>::const_reference m_x; 08270 }; 08271 08272 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08273 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 10> : tuple_type<A10> { 08274 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a10) {} 08275 typename tuple_type<A10>::const_reference get() const { return m_x; } 08276 private: 08277 typename tuple_type<A10>::const_reference m_x; 08278 }; 08279 08280 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08281 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 11> : tuple_type<A11> { 08282 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a11) {} 08283 typename tuple_type<A11>::const_reference get() const { return m_x; } 08284 private: 08285 typename tuple_type<A11>::const_reference m_x; 08286 }; 08287 08288 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08289 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 12> : tuple_type<A12> { 08290 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a12) {} 08291 typename tuple_type<A12>::const_reference get() const { return m_x; } 08292 private: 08293 typename tuple_type<A12>::const_reference m_x; 08294 }; 08295 08296 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08297 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 13> : tuple_type<A13> { 08298 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a13) {} 08299 typename tuple_type<A13>::const_reference get() const { return m_x; } 08300 private: 08301 typename tuple_type<A13>::const_reference m_x; 08302 }; 08303 08304 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08305 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 14> : tuple_type<A14> { 08306 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a14) {} 08307 typename tuple_type<A14>::const_reference get() const { return m_x; } 08308 private: 08309 typename tuple_type<A14>::const_reference m_x; 08310 }; 08311 08312 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08313 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 15> : tuple_type<A15> { 08314 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a15) {} 08315 typename tuple_type<A15>::const_reference get() const { return m_x; } 08316 private: 08317 typename tuple_type<A15>::const_reference m_x; 08318 }; 08319 08320 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08321 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 16> : tuple_type<A16> { 08322 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a16) {} 08323 typename tuple_type<A16>::const_reference get() const { return m_x; } 08324 private: 08325 typename tuple_type<A16>::const_reference m_x; 08326 }; 08327 08328 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08329 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 17> : tuple_type<A17> { 08330 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a17) {} 08331 typename tuple_type<A17>::const_reference get() const { return m_x; } 08332 private: 08333 typename tuple_type<A17>::const_reference m_x; 08334 }; 08335 08336 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08337 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 18> : tuple_type<A18> { 08338 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a18) {} 08339 typename tuple_type<A18>::const_reference get() const { return m_x; } 08340 private: 08341 typename tuple_type<A18>::const_reference m_x; 08342 }; 08343 08344 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08345 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 19> : tuple_type<A19> { 08346 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a19) {} 08347 typename tuple_type<A19>::const_reference get() const { return m_x; } 08348 private: 08349 typename tuple_type<A19>::const_reference m_x; 08350 }; 08351 08352 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08353 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 20> : tuple_type<A20> { 08354 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a20) {} 08355 typename tuple_type<A20>::const_reference get() const { return m_x; } 08356 private: 08357 typename tuple_type<A20>::const_reference m_x; 08358 }; 08359 08360 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08361 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 21> : tuple_type<A21> { 08362 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a21) {} 08363 typename tuple_type<A21>::const_reference get() const { return m_x; } 08364 private: 08365 typename tuple_type<A21>::const_reference m_x; 08366 }; 08367 08368 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08369 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 22> : tuple_type<A22> { 08370 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a22) {} 08371 typename tuple_type<A22>::const_reference get() const { return m_x; } 08372 private: 08373 typename tuple_type<A22>::const_reference m_x; 08374 }; 08375 08376 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08377 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 23> : tuple_type<A23> { 08378 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a23) {} 08379 typename tuple_type<A23>::const_reference get() const { return m_x; } 08380 private: 08381 typename tuple_type<A23>::const_reference m_x; 08382 }; 08383 08384 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08385 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 24> : tuple_type<A24> { 08386 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a24) {} 08387 typename tuple_type<A24>::const_reference get() const { return m_x; } 08388 private: 08389 typename tuple_type<A24>::const_reference m_x; 08390 }; 08391 08392 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08393 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 25> : tuple_type<A25> { 08394 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a25) {} 08395 typename tuple_type<A25>::const_reference get() const { return m_x; } 08396 private: 08397 typename tuple_type<A25>::const_reference m_x; 08398 }; 08399 08400 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08401 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 26> : tuple_type<A26> { 08402 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a26) {} 08403 typename tuple_type<A26>::const_reference get() const { return m_x; } 08404 private: 08405 typename tuple_type<A26>::const_reference m_x; 08406 }; 08407 08408 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08409 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 27> : tuple_type<A27> { 08410 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a27) {} 08411 typename tuple_type<A27>::const_reference get() const { return m_x; } 08412 private: 08413 typename tuple_type<A27>::const_reference m_x; 08414 }; 08415 08416 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 08417 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 28> : tuple_type<A28> { 08418 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a28) {} 08419 typename tuple_type<A28>::const_reference get() const { return m_x; } 08420 private: 08421 typename tuple_type<A28>::const_reference m_x; 08422 }; 08423 08424 08425 08426 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08427 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 0> : tuple_type<A0> { 08428 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a0) {} 08429 typename tuple_type<A0>::const_reference get() const { return m_x; } 08430 private: 08431 typename tuple_type<A0>::const_reference m_x; 08432 }; 08433 08434 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08435 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 1> : tuple_type<A1> { 08436 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a1) {} 08437 typename tuple_type<A1>::const_reference get() const { return m_x; } 08438 private: 08439 typename tuple_type<A1>::const_reference m_x; 08440 }; 08441 08442 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08443 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 2> : tuple_type<A2> { 08444 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a2) {} 08445 typename tuple_type<A2>::const_reference get() const { return m_x; } 08446 private: 08447 typename tuple_type<A2>::const_reference m_x; 08448 }; 08449 08450 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08451 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 3> : tuple_type<A3> { 08452 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a3) {} 08453 typename tuple_type<A3>::const_reference get() const { return m_x; } 08454 private: 08455 typename tuple_type<A3>::const_reference m_x; 08456 }; 08457 08458 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08459 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 4> : tuple_type<A4> { 08460 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a4) {} 08461 typename tuple_type<A4>::const_reference get() const { return m_x; } 08462 private: 08463 typename tuple_type<A4>::const_reference m_x; 08464 }; 08465 08466 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08467 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 5> : tuple_type<A5> { 08468 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a5) {} 08469 typename tuple_type<A5>::const_reference get() const { return m_x; } 08470 private: 08471 typename tuple_type<A5>::const_reference m_x; 08472 }; 08473 08474 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08475 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 6> : tuple_type<A6> { 08476 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a6) {} 08477 typename tuple_type<A6>::const_reference get() const { return m_x; } 08478 private: 08479 typename tuple_type<A6>::const_reference m_x; 08480 }; 08481 08482 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08483 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 7> : tuple_type<A7> { 08484 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a7) {} 08485 typename tuple_type<A7>::const_reference get() const { return m_x; } 08486 private: 08487 typename tuple_type<A7>::const_reference m_x; 08488 }; 08489 08490 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08491 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 8> : tuple_type<A8> { 08492 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a8) {} 08493 typename tuple_type<A8>::const_reference get() const { return m_x; } 08494 private: 08495 typename tuple_type<A8>::const_reference m_x; 08496 }; 08497 08498 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08499 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 9> : tuple_type<A9> { 08500 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a9) {} 08501 typename tuple_type<A9>::const_reference get() const { return m_x; } 08502 private: 08503 typename tuple_type<A9>::const_reference m_x; 08504 }; 08505 08506 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08507 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 10> : tuple_type<A10> { 08508 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a10) {} 08509 typename tuple_type<A10>::const_reference get() const { return m_x; } 08510 private: 08511 typename tuple_type<A10>::const_reference m_x; 08512 }; 08513 08514 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08515 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 11> : tuple_type<A11> { 08516 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a11) {} 08517 typename tuple_type<A11>::const_reference get() const { return m_x; } 08518 private: 08519 typename tuple_type<A11>::const_reference m_x; 08520 }; 08521 08522 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08523 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 12> : tuple_type<A12> { 08524 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a12) {} 08525 typename tuple_type<A12>::const_reference get() const { return m_x; } 08526 private: 08527 typename tuple_type<A12>::const_reference m_x; 08528 }; 08529 08530 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08531 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 13> : tuple_type<A13> { 08532 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a13) {} 08533 typename tuple_type<A13>::const_reference get() const { return m_x; } 08534 private: 08535 typename tuple_type<A13>::const_reference m_x; 08536 }; 08537 08538 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08539 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 14> : tuple_type<A14> { 08540 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a14) {} 08541 typename tuple_type<A14>::const_reference get() const { return m_x; } 08542 private: 08543 typename tuple_type<A14>::const_reference m_x; 08544 }; 08545 08546 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08547 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 15> : tuple_type<A15> { 08548 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a15) {} 08549 typename tuple_type<A15>::const_reference get() const { return m_x; } 08550 private: 08551 typename tuple_type<A15>::const_reference m_x; 08552 }; 08553 08554 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08555 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 16> : tuple_type<A16> { 08556 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a16) {} 08557 typename tuple_type<A16>::const_reference get() const { return m_x; } 08558 private: 08559 typename tuple_type<A16>::const_reference m_x; 08560 }; 08561 08562 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08563 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 17> : tuple_type<A17> { 08564 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a17) {} 08565 typename tuple_type<A17>::const_reference get() const { return m_x; } 08566 private: 08567 typename tuple_type<A17>::const_reference m_x; 08568 }; 08569 08570 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08571 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 18> : tuple_type<A18> { 08572 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a18) {} 08573 typename tuple_type<A18>::const_reference get() const { return m_x; } 08574 private: 08575 typename tuple_type<A18>::const_reference m_x; 08576 }; 08577 08578 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08579 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 19> : tuple_type<A19> { 08580 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a19) {} 08581 typename tuple_type<A19>::const_reference get() const { return m_x; } 08582 private: 08583 typename tuple_type<A19>::const_reference m_x; 08584 }; 08585 08586 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08587 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 20> : tuple_type<A20> { 08588 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a20) {} 08589 typename tuple_type<A20>::const_reference get() const { return m_x; } 08590 private: 08591 typename tuple_type<A20>::const_reference m_x; 08592 }; 08593 08594 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08595 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 21> : tuple_type<A21> { 08596 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a21) {} 08597 typename tuple_type<A21>::const_reference get() const { return m_x; } 08598 private: 08599 typename tuple_type<A21>::const_reference m_x; 08600 }; 08601 08602 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08603 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 22> : tuple_type<A22> { 08604 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a22) {} 08605 typename tuple_type<A22>::const_reference get() const { return m_x; } 08606 private: 08607 typename tuple_type<A22>::const_reference m_x; 08608 }; 08609 08610 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08611 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 23> : tuple_type<A23> { 08612 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a23) {} 08613 typename tuple_type<A23>::const_reference get() const { return m_x; } 08614 private: 08615 typename tuple_type<A23>::const_reference m_x; 08616 }; 08617 08618 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08619 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 24> : tuple_type<A24> { 08620 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a24) {} 08621 typename tuple_type<A24>::const_reference get() const { return m_x; } 08622 private: 08623 typename tuple_type<A24>::const_reference m_x; 08624 }; 08625 08626 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08627 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 25> : tuple_type<A25> { 08628 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a25) {} 08629 typename tuple_type<A25>::const_reference get() const { return m_x; } 08630 private: 08631 typename tuple_type<A25>::const_reference m_x; 08632 }; 08633 08634 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08635 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 26> : tuple_type<A26> { 08636 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a26) {} 08637 typename tuple_type<A26>::const_reference get() const { return m_x; } 08638 private: 08639 typename tuple_type<A26>::const_reference m_x; 08640 }; 08641 08642 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08643 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 27> : tuple_type<A27> { 08644 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a27) {} 08645 typename tuple_type<A27>::const_reference get() const { return m_x; } 08646 private: 08647 typename tuple_type<A27>::const_reference m_x; 08648 }; 08649 08650 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08651 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 28> : tuple_type<A28> { 08652 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a28) {} 08653 typename tuple_type<A28>::const_reference get() const { return m_x; } 08654 private: 08655 typename tuple_type<A28>::const_reference m_x; 08656 }; 08657 08658 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 08659 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 29> : tuple_type<A29> { 08660 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a29) {} 08661 typename tuple_type<A29>::const_reference get() const { return m_x; } 08662 private: 08663 typename tuple_type<A29>::const_reference m_x; 08664 }; 08665 08666 08667 08668 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08669 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 0> : tuple_type<A0> { 08670 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a0) {} 08671 typename tuple_type<A0>::const_reference get() const { return m_x; } 08672 private: 08673 typename tuple_type<A0>::const_reference m_x; 08674 }; 08675 08676 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08677 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 1> : tuple_type<A1> { 08678 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a1) {} 08679 typename tuple_type<A1>::const_reference get() const { return m_x; } 08680 private: 08681 typename tuple_type<A1>::const_reference m_x; 08682 }; 08683 08684 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08685 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 2> : tuple_type<A2> { 08686 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a2) {} 08687 typename tuple_type<A2>::const_reference get() const { return m_x; } 08688 private: 08689 typename tuple_type<A2>::const_reference m_x; 08690 }; 08691 08692 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08693 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 3> : tuple_type<A3> { 08694 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a3) {} 08695 typename tuple_type<A3>::const_reference get() const { return m_x; } 08696 private: 08697 typename tuple_type<A3>::const_reference m_x; 08698 }; 08699 08700 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08701 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 4> : tuple_type<A4> { 08702 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a4) {} 08703 typename tuple_type<A4>::const_reference get() const { return m_x; } 08704 private: 08705 typename tuple_type<A4>::const_reference m_x; 08706 }; 08707 08708 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08709 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 5> : tuple_type<A5> { 08710 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a5) {} 08711 typename tuple_type<A5>::const_reference get() const { return m_x; } 08712 private: 08713 typename tuple_type<A5>::const_reference m_x; 08714 }; 08715 08716 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08717 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 6> : tuple_type<A6> { 08718 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a6) {} 08719 typename tuple_type<A6>::const_reference get() const { return m_x; } 08720 private: 08721 typename tuple_type<A6>::const_reference m_x; 08722 }; 08723 08724 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08725 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 7> : tuple_type<A7> { 08726 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a7) {} 08727 typename tuple_type<A7>::const_reference get() const { return m_x; } 08728 private: 08729 typename tuple_type<A7>::const_reference m_x; 08730 }; 08731 08732 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08733 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 8> : tuple_type<A8> { 08734 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a8) {} 08735 typename tuple_type<A8>::const_reference get() const { return m_x; } 08736 private: 08737 typename tuple_type<A8>::const_reference m_x; 08738 }; 08739 08740 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08741 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 9> : tuple_type<A9> { 08742 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a9) {} 08743 typename tuple_type<A9>::const_reference get() const { return m_x; } 08744 private: 08745 typename tuple_type<A9>::const_reference m_x; 08746 }; 08747 08748 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08749 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 10> : tuple_type<A10> { 08750 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a10) {} 08751 typename tuple_type<A10>::const_reference get() const { return m_x; } 08752 private: 08753 typename tuple_type<A10>::const_reference m_x; 08754 }; 08755 08756 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08757 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 11> : tuple_type<A11> { 08758 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a11) {} 08759 typename tuple_type<A11>::const_reference get() const { return m_x; } 08760 private: 08761 typename tuple_type<A11>::const_reference m_x; 08762 }; 08763 08764 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08765 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 12> : tuple_type<A12> { 08766 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a12) {} 08767 typename tuple_type<A12>::const_reference get() const { return m_x; } 08768 private: 08769 typename tuple_type<A12>::const_reference m_x; 08770 }; 08771 08772 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08773 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 13> : tuple_type<A13> { 08774 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a13) {} 08775 typename tuple_type<A13>::const_reference get() const { return m_x; } 08776 private: 08777 typename tuple_type<A13>::const_reference m_x; 08778 }; 08779 08780 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08781 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 14> : tuple_type<A14> { 08782 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a14) {} 08783 typename tuple_type<A14>::const_reference get() const { return m_x; } 08784 private: 08785 typename tuple_type<A14>::const_reference m_x; 08786 }; 08787 08788 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08789 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 15> : tuple_type<A15> { 08790 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a15) {} 08791 typename tuple_type<A15>::const_reference get() const { return m_x; } 08792 private: 08793 typename tuple_type<A15>::const_reference m_x; 08794 }; 08795 08796 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08797 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 16> : tuple_type<A16> { 08798 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a16) {} 08799 typename tuple_type<A16>::const_reference get() const { return m_x; } 08800 private: 08801 typename tuple_type<A16>::const_reference m_x; 08802 }; 08803 08804 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08805 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 17> : tuple_type<A17> { 08806 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a17) {} 08807 typename tuple_type<A17>::const_reference get() const { return m_x; } 08808 private: 08809 typename tuple_type<A17>::const_reference m_x; 08810 }; 08811 08812 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08813 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 18> : tuple_type<A18> { 08814 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a18) {} 08815 typename tuple_type<A18>::const_reference get() const { return m_x; } 08816 private: 08817 typename tuple_type<A18>::const_reference m_x; 08818 }; 08819 08820 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08821 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 19> : tuple_type<A19> { 08822 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a19) {} 08823 typename tuple_type<A19>::const_reference get() const { return m_x; } 08824 private: 08825 typename tuple_type<A19>::const_reference m_x; 08826 }; 08827 08828 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08829 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 20> : tuple_type<A20> { 08830 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a20) {} 08831 typename tuple_type<A20>::const_reference get() const { return m_x; } 08832 private: 08833 typename tuple_type<A20>::const_reference m_x; 08834 }; 08835 08836 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08837 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 21> : tuple_type<A21> { 08838 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a21) {} 08839 typename tuple_type<A21>::const_reference get() const { return m_x; } 08840 private: 08841 typename tuple_type<A21>::const_reference m_x; 08842 }; 08843 08844 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08845 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 22> : tuple_type<A22> { 08846 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a22) {} 08847 typename tuple_type<A22>::const_reference get() const { return m_x; } 08848 private: 08849 typename tuple_type<A22>::const_reference m_x; 08850 }; 08851 08852 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08853 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 23> : tuple_type<A23> { 08854 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a23) {} 08855 typename tuple_type<A23>::const_reference get() const { return m_x; } 08856 private: 08857 typename tuple_type<A23>::const_reference m_x; 08858 }; 08859 08860 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08861 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 24> : tuple_type<A24> { 08862 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a24) {} 08863 typename tuple_type<A24>::const_reference get() const { return m_x; } 08864 private: 08865 typename tuple_type<A24>::const_reference m_x; 08866 }; 08867 08868 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08869 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 25> : tuple_type<A25> { 08870 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a25) {} 08871 typename tuple_type<A25>::const_reference get() const { return m_x; } 08872 private: 08873 typename tuple_type<A25>::const_reference m_x; 08874 }; 08875 08876 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08877 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 26> : tuple_type<A26> { 08878 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a26) {} 08879 typename tuple_type<A26>::const_reference get() const { return m_x; } 08880 private: 08881 typename tuple_type<A26>::const_reference m_x; 08882 }; 08883 08884 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08885 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 27> : tuple_type<A27> { 08886 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a27) {} 08887 typename tuple_type<A27>::const_reference get() const { return m_x; } 08888 private: 08889 typename tuple_type<A27>::const_reference m_x; 08890 }; 08891 08892 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08893 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 28> : tuple_type<A28> { 08894 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a28) {} 08895 typename tuple_type<A28>::const_reference get() const { return m_x; } 08896 private: 08897 typename tuple_type<A28>::const_reference m_x; 08898 }; 08899 08900 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08901 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 29> : tuple_type<A29> { 08902 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a29) {} 08903 typename tuple_type<A29>::const_reference get() const { return m_x; } 08904 private: 08905 typename tuple_type<A29>::const_reference m_x; 08906 }; 08907 08908 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 08909 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 30> : tuple_type<A30> { 08910 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a30) {} 08911 typename tuple_type<A30>::const_reference get() const { return m_x; } 08912 private: 08913 typename tuple_type<A30>::const_reference m_x; 08914 }; 08915 08916 08917 08918 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08919 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 0> : tuple_type<A0> { 08920 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a0) {} 08921 typename tuple_type<A0>::const_reference get() const { return m_x; } 08922 private: 08923 typename tuple_type<A0>::const_reference m_x; 08924 }; 08925 08926 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08927 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 1> : tuple_type<A1> { 08928 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a1) {} 08929 typename tuple_type<A1>::const_reference get() const { return m_x; } 08930 private: 08931 typename tuple_type<A1>::const_reference m_x; 08932 }; 08933 08934 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08935 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 2> : tuple_type<A2> { 08936 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a2) {} 08937 typename tuple_type<A2>::const_reference get() const { return m_x; } 08938 private: 08939 typename tuple_type<A2>::const_reference m_x; 08940 }; 08941 08942 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08943 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 3> : tuple_type<A3> { 08944 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a3) {} 08945 typename tuple_type<A3>::const_reference get() const { return m_x; } 08946 private: 08947 typename tuple_type<A3>::const_reference m_x; 08948 }; 08949 08950 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08951 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 4> : tuple_type<A4> { 08952 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a4) {} 08953 typename tuple_type<A4>::const_reference get() const { return m_x; } 08954 private: 08955 typename tuple_type<A4>::const_reference m_x; 08956 }; 08957 08958 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08959 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 5> : tuple_type<A5> { 08960 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a5) {} 08961 typename tuple_type<A5>::const_reference get() const { return m_x; } 08962 private: 08963 typename tuple_type<A5>::const_reference m_x; 08964 }; 08965 08966 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08967 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 6> : tuple_type<A6> { 08968 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a6) {} 08969 typename tuple_type<A6>::const_reference get() const { return m_x; } 08970 private: 08971 typename tuple_type<A6>::const_reference m_x; 08972 }; 08973 08974 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08975 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 7> : tuple_type<A7> { 08976 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a7) {} 08977 typename tuple_type<A7>::const_reference get() const { return m_x; } 08978 private: 08979 typename tuple_type<A7>::const_reference m_x; 08980 }; 08981 08982 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08983 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 8> : tuple_type<A8> { 08984 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a8) {} 08985 typename tuple_type<A8>::const_reference get() const { return m_x; } 08986 private: 08987 typename tuple_type<A8>::const_reference m_x; 08988 }; 08989 08990 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08991 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 9> : tuple_type<A9> { 08992 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a9) {} 08993 typename tuple_type<A9>::const_reference get() const { return m_x; } 08994 private: 08995 typename tuple_type<A9>::const_reference m_x; 08996 }; 08997 08998 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 08999 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 10> : tuple_type<A10> { 09000 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a10) {} 09001 typename tuple_type<A10>::const_reference get() const { return m_x; } 09002 private: 09003 typename tuple_type<A10>::const_reference m_x; 09004 }; 09005 09006 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09007 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 11> : tuple_type<A11> { 09008 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a11) {} 09009 typename tuple_type<A11>::const_reference get() const { return m_x; } 09010 private: 09011 typename tuple_type<A11>::const_reference m_x; 09012 }; 09013 09014 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09015 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 12> : tuple_type<A12> { 09016 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a12) {} 09017 typename tuple_type<A12>::const_reference get() const { return m_x; } 09018 private: 09019 typename tuple_type<A12>::const_reference m_x; 09020 }; 09021 09022 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09023 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 13> : tuple_type<A13> { 09024 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a13) {} 09025 typename tuple_type<A13>::const_reference get() const { return m_x; } 09026 private: 09027 typename tuple_type<A13>::const_reference m_x; 09028 }; 09029 09030 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09031 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 14> : tuple_type<A14> { 09032 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a14) {} 09033 typename tuple_type<A14>::const_reference get() const { return m_x; } 09034 private: 09035 typename tuple_type<A14>::const_reference m_x; 09036 }; 09037 09038 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09039 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 15> : tuple_type<A15> { 09040 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a15) {} 09041 typename tuple_type<A15>::const_reference get() const { return m_x; } 09042 private: 09043 typename tuple_type<A15>::const_reference m_x; 09044 }; 09045 09046 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09047 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 16> : tuple_type<A16> { 09048 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a16) {} 09049 typename tuple_type<A16>::const_reference get() const { return m_x; } 09050 private: 09051 typename tuple_type<A16>::const_reference m_x; 09052 }; 09053 09054 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09055 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 17> : tuple_type<A17> { 09056 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a17) {} 09057 typename tuple_type<A17>::const_reference get() const { return m_x; } 09058 private: 09059 typename tuple_type<A17>::const_reference m_x; 09060 }; 09061 09062 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09063 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 18> : tuple_type<A18> { 09064 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a18) {} 09065 typename tuple_type<A18>::const_reference get() const { return m_x; } 09066 private: 09067 typename tuple_type<A18>::const_reference m_x; 09068 }; 09069 09070 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09071 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 19> : tuple_type<A19> { 09072 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a19) {} 09073 typename tuple_type<A19>::const_reference get() const { return m_x; } 09074 private: 09075 typename tuple_type<A19>::const_reference m_x; 09076 }; 09077 09078 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09079 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 20> : tuple_type<A20> { 09080 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a20) {} 09081 typename tuple_type<A20>::const_reference get() const { return m_x; } 09082 private: 09083 typename tuple_type<A20>::const_reference m_x; 09084 }; 09085 09086 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09087 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 21> : tuple_type<A21> { 09088 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a21) {} 09089 typename tuple_type<A21>::const_reference get() const { return m_x; } 09090 private: 09091 typename tuple_type<A21>::const_reference m_x; 09092 }; 09093 09094 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09095 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 22> : tuple_type<A22> { 09096 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a22) {} 09097 typename tuple_type<A22>::const_reference get() const { return m_x; } 09098 private: 09099 typename tuple_type<A22>::const_reference m_x; 09100 }; 09101 09102 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09103 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 23> : tuple_type<A23> { 09104 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a23) {} 09105 typename tuple_type<A23>::const_reference get() const { return m_x; } 09106 private: 09107 typename tuple_type<A23>::const_reference m_x; 09108 }; 09109 09110 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09111 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 24> : tuple_type<A24> { 09112 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a24) {} 09113 typename tuple_type<A24>::const_reference get() const { return m_x; } 09114 private: 09115 typename tuple_type<A24>::const_reference m_x; 09116 }; 09117 09118 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09119 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 25> : tuple_type<A25> { 09120 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a25) {} 09121 typename tuple_type<A25>::const_reference get() const { return m_x; } 09122 private: 09123 typename tuple_type<A25>::const_reference m_x; 09124 }; 09125 09126 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09127 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 26> : tuple_type<A26> { 09128 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a26) {} 09129 typename tuple_type<A26>::const_reference get() const { return m_x; } 09130 private: 09131 typename tuple_type<A26>::const_reference m_x; 09132 }; 09133 09134 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09135 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 27> : tuple_type<A27> { 09136 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a27) {} 09137 typename tuple_type<A27>::const_reference get() const { return m_x; } 09138 private: 09139 typename tuple_type<A27>::const_reference m_x; 09140 }; 09141 09142 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09143 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 28> : tuple_type<A28> { 09144 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a28) {} 09145 typename tuple_type<A28>::const_reference get() const { return m_x; } 09146 private: 09147 typename tuple_type<A28>::const_reference m_x; 09148 }; 09149 09150 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09151 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 29> : tuple_type<A29> { 09152 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a29) {} 09153 typename tuple_type<A29>::const_reference get() const { return m_x; } 09154 private: 09155 typename tuple_type<A29>::const_reference m_x; 09156 }; 09157 09158 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09159 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 30> : tuple_type<A30> { 09160 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a30) {} 09161 typename tuple_type<A30>::const_reference get() const { return m_x; } 09162 private: 09163 typename tuple_type<A30>::const_reference m_x; 09164 }; 09165 09166 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 09167 struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 31> : tuple_type<A31> { 09168 const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a31) {} 09169 typename tuple_type<A31>::const_reference get() const { return m_x; } 09170 private: 09171 typename tuple_type<A31>::const_reference m_x; 09172 }; 09173 09174 09175 /// @endcond 09176 09177 template <> 09178 struct tuple<> { 09179 tuple() {} 09180 tuple(msgpack::object const& o) { o.convert(*this); } 09181 typedef tuple<> value_type; 09182 }; 09183 09184 /// @cond 09185 09186 template <typename A0> 09187 struct tuple<A0> { 09188 typedef tuple<A0> value_type; 09189 tuple() {} 09190 tuple(typename tuple_type<A0>::transparent_reference _a0) : 09191 a0(_a0) {} 09192 tuple(msgpack::object const& o) { o.convert(*this); } 09193 template <int N> typename tuple_element<value_type, N>::reference get() 09194 { return tuple_element<value_type, N>(*this).get(); } 09195 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09196 { return const_tuple_element<value_type, N>(*this).get(); } 09197 09198 A0 a0; 09199 }; 09200 09201 template <int N, typename A0> 09202 inline typename type::tuple_element<type::tuple<A0>, N>::reference get(type::tuple<A0>& t) 09203 { return t.template get<N>(); } 09204 template <int N, typename A0> 09205 inline typename type::const_tuple_element<type::tuple<A0>, N>::const_reference get(type::tuple<A0> const& t) 09206 { return t.template get<N>(); } 09207 09208 template <typename A0, typename A1> 09209 struct tuple<A0, A1> { 09210 typedef tuple<A0, A1> value_type; 09211 tuple() {} 09212 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1) : 09213 a0(_a0), a1(_a1) {} 09214 tuple(msgpack::object const& o) { o.convert(*this); } 09215 template <int N> typename tuple_element<value_type, N>::reference get() 09216 { return tuple_element<value_type, N>(*this).get(); } 09217 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09218 { return const_tuple_element<value_type, N>(*this).get(); } 09219 09220 A0 a0; 09221 A1 a1; 09222 }; 09223 09224 template <int N, typename A0, typename A1> 09225 inline typename type::tuple_element<type::tuple<A0, A1>, N>::reference get(type::tuple<A0, A1>& t) 09226 { return t.template get<N>(); } 09227 template <int N, typename A0, typename A1> 09228 inline typename type::const_tuple_element<type::tuple<A0, A1>, N>::const_reference get(type::tuple<A0, A1> const& t) 09229 { return t.template get<N>(); } 09230 09231 template <typename A0, typename A1, typename A2> 09232 struct tuple<A0, A1, A2> { 09233 typedef tuple<A0, A1, A2> value_type; 09234 tuple() {} 09235 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2) : 09236 a0(_a0), a1(_a1), a2(_a2) {} 09237 tuple(msgpack::object const& o) { o.convert(*this); } 09238 template <int N> typename tuple_element<value_type, N>::reference get() 09239 { return tuple_element<value_type, N>(*this).get(); } 09240 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09241 { return const_tuple_element<value_type, N>(*this).get(); } 09242 09243 A0 a0; 09244 A1 a1; 09245 A2 a2; 09246 }; 09247 09248 template <int N, typename A0, typename A1, typename A2> 09249 inline typename type::tuple_element<type::tuple<A0, A1, A2>, N>::reference get(type::tuple<A0, A1, A2>& t) 09250 { return t.template get<N>(); } 09251 template <int N, typename A0, typename A1, typename A2> 09252 inline typename type::const_tuple_element<type::tuple<A0, A1, A2>, N>::const_reference get(type::tuple<A0, A1, A2> const& t) 09253 { return t.template get<N>(); } 09254 09255 template <typename A0, typename A1, typename A2, typename A3> 09256 struct tuple<A0, A1, A2, A3> { 09257 typedef tuple<A0, A1, A2, A3> value_type; 09258 tuple() {} 09259 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3) : 09260 a0(_a0), a1(_a1), a2(_a2), a3(_a3) {} 09261 tuple(msgpack::object const& o) { o.convert(*this); } 09262 template <int N> typename tuple_element<value_type, N>::reference get() 09263 { return tuple_element<value_type, N>(*this).get(); } 09264 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09265 { return const_tuple_element<value_type, N>(*this).get(); } 09266 09267 A0 a0; 09268 A1 a1; 09269 A2 a2; 09270 A3 a3; 09271 }; 09272 09273 template <int N, typename A0, typename A1, typename A2, typename A3> 09274 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3>, N>::reference get(type::tuple<A0, A1, A2, A3>& t) 09275 { return t.template get<N>(); } 09276 template <int N, typename A0, typename A1, typename A2, typename A3> 09277 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3>, N>::const_reference get(type::tuple<A0, A1, A2, A3> const& t) 09278 { return t.template get<N>(); } 09279 09280 template <typename A0, typename A1, typename A2, typename A3, typename A4> 09281 struct tuple<A0, A1, A2, A3, A4> { 09282 typedef tuple<A0, A1, A2, A3, A4> value_type; 09283 tuple() {} 09284 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4) : 09285 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4) {} 09286 tuple(msgpack::object const& o) { o.convert(*this); } 09287 template <int N> typename tuple_element<value_type, N>::reference get() 09288 { return tuple_element<value_type, N>(*this).get(); } 09289 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09290 { return const_tuple_element<value_type, N>(*this).get(); } 09291 09292 A0 a0; 09293 A1 a1; 09294 A2 a2; 09295 A3 a3; 09296 A4 a4; 09297 }; 09298 09299 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4> 09300 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4>, N>::reference get(type::tuple<A0, A1, A2, A3, A4>& t) 09301 { return t.template get<N>(); } 09302 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4> 09303 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4> const& t) 09304 { return t.template get<N>(); } 09305 09306 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 09307 struct tuple<A0, A1, A2, A3, A4, A5> { 09308 typedef tuple<A0, A1, A2, A3, A4, A5> value_type; 09309 tuple() {} 09310 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5) : 09311 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {} 09312 tuple(msgpack::object const& o) { o.convert(*this); } 09313 template <int N> typename tuple_element<value_type, N>::reference get() 09314 { return tuple_element<value_type, N>(*this).get(); } 09315 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09316 { return const_tuple_element<value_type, N>(*this).get(); } 09317 09318 A0 a0; 09319 A1 a1; 09320 A2 a2; 09321 A3 a3; 09322 A4 a4; 09323 A5 a5; 09324 }; 09325 09326 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 09327 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5>& t) 09328 { return t.template get<N>(); } 09329 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 09330 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5> const& t) 09331 { return t.template get<N>(); } 09332 09333 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 09334 struct tuple<A0, A1, A2, A3, A4, A5, A6> { 09335 typedef tuple<A0, A1, A2, A3, A4, A5, A6> value_type; 09336 tuple() {} 09337 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6) : 09338 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6) {} 09339 tuple(msgpack::object const& o) { o.convert(*this); } 09340 template <int N> typename tuple_element<value_type, N>::reference get() 09341 { return tuple_element<value_type, N>(*this).get(); } 09342 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09343 { return const_tuple_element<value_type, N>(*this).get(); } 09344 09345 A0 a0; 09346 A1 a1; 09347 A2 a2; 09348 A3 a3; 09349 A4 a4; 09350 A5 a5; 09351 A6 a6; 09352 }; 09353 09354 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 09355 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6>& t) 09356 { return t.template get<N>(); } 09357 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 09358 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6> const& t) 09359 { return t.template get<N>(); } 09360 09361 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 09362 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7> { 09363 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7> value_type; 09364 tuple() {} 09365 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7) : 09366 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {} 09367 tuple(msgpack::object const& o) { o.convert(*this); } 09368 template <int N> typename tuple_element<value_type, N>::reference get() 09369 { return tuple_element<value_type, N>(*this).get(); } 09370 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09371 { return const_tuple_element<value_type, N>(*this).get(); } 09372 09373 A0 a0; 09374 A1 a1; 09375 A2 a2; 09376 A3 a3; 09377 A4 a4; 09378 A5 a5; 09379 A6 a6; 09380 A7 a7; 09381 }; 09382 09383 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 09384 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& t) 09385 { return t.template get<N>(); } 09386 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 09387 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> const& t) 09388 { return t.template get<N>(); } 09389 09390 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 09391 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> { 09392 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> value_type; 09393 tuple() {} 09394 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8) : 09395 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8) {} 09396 tuple(msgpack::object const& o) { o.convert(*this); } 09397 template <int N> typename tuple_element<value_type, N>::reference get() 09398 { return tuple_element<value_type, N>(*this).get(); } 09399 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09400 { return const_tuple_element<value_type, N>(*this).get(); } 09401 09402 A0 a0; 09403 A1 a1; 09404 A2 a2; 09405 A3 a3; 09406 A4 a4; 09407 A5 a5; 09408 A6 a6; 09409 A7 a7; 09410 A8 a8; 09411 }; 09412 09413 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 09414 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& t) 09415 { return t.template get<N>(); } 09416 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 09417 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> const& t) 09418 { return t.template get<N>(); } 09419 09420 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 09421 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> { 09422 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> value_type; 09423 tuple() {} 09424 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9) : 09425 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {} 09426 tuple(msgpack::object const& o) { o.convert(*this); } 09427 template <int N> typename tuple_element<value_type, N>::reference get() 09428 { return tuple_element<value_type, N>(*this).get(); } 09429 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09430 { return const_tuple_element<value_type, N>(*this).get(); } 09431 09432 A0 a0; 09433 A1 a1; 09434 A2 a2; 09435 A3 a3; 09436 A4 a4; 09437 A5 a5; 09438 A6 a6; 09439 A7 a7; 09440 A8 a8; 09441 A9 a9; 09442 }; 09443 09444 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 09445 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& t) 09446 { return t.template get<N>(); } 09447 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 09448 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> const& t) 09449 { return t.template get<N>(); } 09450 09451 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 09452 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> { 09453 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> value_type; 09454 tuple() {} 09455 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10) : 09456 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10) {} 09457 tuple(msgpack::object const& o) { o.convert(*this); } 09458 template <int N> typename tuple_element<value_type, N>::reference get() 09459 { return tuple_element<value_type, N>(*this).get(); } 09460 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09461 { return const_tuple_element<value_type, N>(*this).get(); } 09462 09463 A0 a0; 09464 A1 a1; 09465 A2 a2; 09466 A3 a3; 09467 A4 a4; 09468 A5 a5; 09469 A6 a6; 09470 A7 a7; 09471 A8 a8; 09472 A9 a9; 09473 A10 a10; 09474 }; 09475 09476 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 09477 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& t) 09478 { return t.template get<N>(); } 09479 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 09480 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> const& t) 09481 { return t.template get<N>(); } 09482 09483 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 09484 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> { 09485 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> value_type; 09486 tuple() {} 09487 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11) : 09488 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {} 09489 tuple(msgpack::object const& o) { o.convert(*this); } 09490 template <int N> typename tuple_element<value_type, N>::reference get() 09491 { return tuple_element<value_type, N>(*this).get(); } 09492 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09493 { return const_tuple_element<value_type, N>(*this).get(); } 09494 09495 A0 a0; 09496 A1 a1; 09497 A2 a2; 09498 A3 a3; 09499 A4 a4; 09500 A5 a5; 09501 A6 a6; 09502 A7 a7; 09503 A8 a8; 09504 A9 a9; 09505 A10 a10; 09506 A11 a11; 09507 }; 09508 09509 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 09510 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& t) 09511 { return t.template get<N>(); } 09512 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 09513 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> const& t) 09514 { return t.template get<N>(); } 09515 09516 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 09517 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> { 09518 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> value_type; 09519 tuple() {} 09520 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12) : 09521 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12) {} 09522 tuple(msgpack::object const& o) { o.convert(*this); } 09523 template <int N> typename tuple_element<value_type, N>::reference get() 09524 { return tuple_element<value_type, N>(*this).get(); } 09525 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09526 { return const_tuple_element<value_type, N>(*this).get(); } 09527 09528 A0 a0; 09529 A1 a1; 09530 A2 a2; 09531 A3 a3; 09532 A4 a4; 09533 A5 a5; 09534 A6 a6; 09535 A7 a7; 09536 A8 a8; 09537 A9 a9; 09538 A10 a10; 09539 A11 a11; 09540 A12 a12; 09541 }; 09542 09543 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 09544 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& t) 09545 { return t.template get<N>(); } 09546 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 09547 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> const& t) 09548 { return t.template get<N>(); } 09549 09550 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 09551 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> { 09552 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> value_type; 09553 tuple() {} 09554 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13) : 09555 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {} 09556 tuple(msgpack::object const& o) { o.convert(*this); } 09557 template <int N> typename tuple_element<value_type, N>::reference get() 09558 { return tuple_element<value_type, N>(*this).get(); } 09559 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09560 { return const_tuple_element<value_type, N>(*this).get(); } 09561 09562 A0 a0; 09563 A1 a1; 09564 A2 a2; 09565 A3 a3; 09566 A4 a4; 09567 A5 a5; 09568 A6 a6; 09569 A7 a7; 09570 A8 a8; 09571 A9 a9; 09572 A10 a10; 09573 A11 a11; 09574 A12 a12; 09575 A13 a13; 09576 }; 09577 09578 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 09579 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& t) 09580 { return t.template get<N>(); } 09581 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 09582 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> const& t) 09583 { return t.template get<N>(); } 09584 09585 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 09586 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> { 09587 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> value_type; 09588 tuple() {} 09589 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14) : 09590 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14) {} 09591 tuple(msgpack::object const& o) { o.convert(*this); } 09592 template <int N> typename tuple_element<value_type, N>::reference get() 09593 { return tuple_element<value_type, N>(*this).get(); } 09594 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09595 { return const_tuple_element<value_type, N>(*this).get(); } 09596 09597 A0 a0; 09598 A1 a1; 09599 A2 a2; 09600 A3 a3; 09601 A4 a4; 09602 A5 a5; 09603 A6 a6; 09604 A7 a7; 09605 A8 a8; 09606 A9 a9; 09607 A10 a10; 09608 A11 a11; 09609 A12 a12; 09610 A13 a13; 09611 A14 a14; 09612 }; 09613 09614 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 09615 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& t) 09616 { return t.template get<N>(); } 09617 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 09618 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> const& t) 09619 { return t.template get<N>(); } 09620 09621 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 09622 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> { 09623 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> value_type; 09624 tuple() {} 09625 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15) : 09626 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {} 09627 tuple(msgpack::object const& o) { o.convert(*this); } 09628 template <int N> typename tuple_element<value_type, N>::reference get() 09629 { return tuple_element<value_type, N>(*this).get(); } 09630 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09631 { return const_tuple_element<value_type, N>(*this).get(); } 09632 09633 A0 a0; 09634 A1 a1; 09635 A2 a2; 09636 A3 a3; 09637 A4 a4; 09638 A5 a5; 09639 A6 a6; 09640 A7 a7; 09641 A8 a8; 09642 A9 a9; 09643 A10 a10; 09644 A11 a11; 09645 A12 a12; 09646 A13 a13; 09647 A14 a14; 09648 A15 a15; 09649 }; 09650 09651 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 09652 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& t) 09653 { return t.template get<N>(); } 09654 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 09655 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> const& t) 09656 { return t.template get<N>(); } 09657 09658 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 09659 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> { 09660 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> value_type; 09661 tuple() {} 09662 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16) : 09663 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16) {} 09664 tuple(msgpack::object const& o) { o.convert(*this); } 09665 template <int N> typename tuple_element<value_type, N>::reference get() 09666 { return tuple_element<value_type, N>(*this).get(); } 09667 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09668 { return const_tuple_element<value_type, N>(*this).get(); } 09669 09670 A0 a0; 09671 A1 a1; 09672 A2 a2; 09673 A3 a3; 09674 A4 a4; 09675 A5 a5; 09676 A6 a6; 09677 A7 a7; 09678 A8 a8; 09679 A9 a9; 09680 A10 a10; 09681 A11 a11; 09682 A12 a12; 09683 A13 a13; 09684 A14 a14; 09685 A15 a15; 09686 A16 a16; 09687 }; 09688 09689 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 09690 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& t) 09691 { return t.template get<N>(); } 09692 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 09693 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> const& t) 09694 { return t.template get<N>(); } 09695 09696 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 09697 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> { 09698 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> value_type; 09699 tuple() {} 09700 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17) : 09701 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {} 09702 tuple(msgpack::object const& o) { o.convert(*this); } 09703 template <int N> typename tuple_element<value_type, N>::reference get() 09704 { return tuple_element<value_type, N>(*this).get(); } 09705 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09706 { return const_tuple_element<value_type, N>(*this).get(); } 09707 09708 A0 a0; 09709 A1 a1; 09710 A2 a2; 09711 A3 a3; 09712 A4 a4; 09713 A5 a5; 09714 A6 a6; 09715 A7 a7; 09716 A8 a8; 09717 A9 a9; 09718 A10 a10; 09719 A11 a11; 09720 A12 a12; 09721 A13 a13; 09722 A14 a14; 09723 A15 a15; 09724 A16 a16; 09725 A17 a17; 09726 }; 09727 09728 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 09729 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& t) 09730 { return t.template get<N>(); } 09731 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 09732 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> const& t) 09733 { return t.template get<N>(); } 09734 09735 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 09736 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> { 09737 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> value_type; 09738 tuple() {} 09739 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18) : 09740 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18) {} 09741 tuple(msgpack::object const& o) { o.convert(*this); } 09742 template <int N> typename tuple_element<value_type, N>::reference get() 09743 { return tuple_element<value_type, N>(*this).get(); } 09744 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09745 { return const_tuple_element<value_type, N>(*this).get(); } 09746 09747 A0 a0; 09748 A1 a1; 09749 A2 a2; 09750 A3 a3; 09751 A4 a4; 09752 A5 a5; 09753 A6 a6; 09754 A7 a7; 09755 A8 a8; 09756 A9 a9; 09757 A10 a10; 09758 A11 a11; 09759 A12 a12; 09760 A13 a13; 09761 A14 a14; 09762 A15 a15; 09763 A16 a16; 09764 A17 a17; 09765 A18 a18; 09766 }; 09767 09768 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 09769 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& t) 09770 { return t.template get<N>(); } 09771 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 09772 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> const& t) 09773 { return t.template get<N>(); } 09774 09775 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 09776 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> { 09777 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> value_type; 09778 tuple() {} 09779 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19) : 09780 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {} 09781 tuple(msgpack::object const& o) { o.convert(*this); } 09782 template <int N> typename tuple_element<value_type, N>::reference get() 09783 { return tuple_element<value_type, N>(*this).get(); } 09784 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09785 { return const_tuple_element<value_type, N>(*this).get(); } 09786 09787 A0 a0; 09788 A1 a1; 09789 A2 a2; 09790 A3 a3; 09791 A4 a4; 09792 A5 a5; 09793 A6 a6; 09794 A7 a7; 09795 A8 a8; 09796 A9 a9; 09797 A10 a10; 09798 A11 a11; 09799 A12 a12; 09800 A13 a13; 09801 A14 a14; 09802 A15 a15; 09803 A16 a16; 09804 A17 a17; 09805 A18 a18; 09806 A19 a19; 09807 }; 09808 09809 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 09810 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& t) 09811 { return t.template get<N>(); } 09812 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 09813 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> const& t) 09814 { return t.template get<N>(); } 09815 09816 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 09817 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> { 09818 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> value_type; 09819 tuple() {} 09820 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20) : 09821 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20) {} 09822 tuple(msgpack::object const& o) { o.convert(*this); } 09823 template <int N> typename tuple_element<value_type, N>::reference get() 09824 { return tuple_element<value_type, N>(*this).get(); } 09825 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09826 { return const_tuple_element<value_type, N>(*this).get(); } 09827 09828 A0 a0; 09829 A1 a1; 09830 A2 a2; 09831 A3 a3; 09832 A4 a4; 09833 A5 a5; 09834 A6 a6; 09835 A7 a7; 09836 A8 a8; 09837 A9 a9; 09838 A10 a10; 09839 A11 a11; 09840 A12 a12; 09841 A13 a13; 09842 A14 a14; 09843 A15 a15; 09844 A16 a16; 09845 A17 a17; 09846 A18 a18; 09847 A19 a19; 09848 A20 a20; 09849 }; 09850 09851 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 09852 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& t) 09853 { return t.template get<N>(); } 09854 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 09855 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> const& t) 09856 { return t.template get<N>(); } 09857 09858 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 09859 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> { 09860 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> value_type; 09861 tuple() {} 09862 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21) : 09863 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {} 09864 tuple(msgpack::object const& o) { o.convert(*this); } 09865 template <int N> typename tuple_element<value_type, N>::reference get() 09866 { return tuple_element<value_type, N>(*this).get(); } 09867 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09868 { return const_tuple_element<value_type, N>(*this).get(); } 09869 09870 A0 a0; 09871 A1 a1; 09872 A2 a2; 09873 A3 a3; 09874 A4 a4; 09875 A5 a5; 09876 A6 a6; 09877 A7 a7; 09878 A8 a8; 09879 A9 a9; 09880 A10 a10; 09881 A11 a11; 09882 A12 a12; 09883 A13 a13; 09884 A14 a14; 09885 A15 a15; 09886 A16 a16; 09887 A17 a17; 09888 A18 a18; 09889 A19 a19; 09890 A20 a20; 09891 A21 a21; 09892 }; 09893 09894 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 09895 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& t) 09896 { return t.template get<N>(); } 09897 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 09898 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> const& t) 09899 { return t.template get<N>(); } 09900 09901 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 09902 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> { 09903 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> value_type; 09904 tuple() {} 09905 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22) : 09906 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22) {} 09907 tuple(msgpack::object const& o) { o.convert(*this); } 09908 template <int N> typename tuple_element<value_type, N>::reference get() 09909 { return tuple_element<value_type, N>(*this).get(); } 09910 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09911 { return const_tuple_element<value_type, N>(*this).get(); } 09912 09913 A0 a0; 09914 A1 a1; 09915 A2 a2; 09916 A3 a3; 09917 A4 a4; 09918 A5 a5; 09919 A6 a6; 09920 A7 a7; 09921 A8 a8; 09922 A9 a9; 09923 A10 a10; 09924 A11 a11; 09925 A12 a12; 09926 A13 a13; 09927 A14 a14; 09928 A15 a15; 09929 A16 a16; 09930 A17 a17; 09931 A18 a18; 09932 A19 a19; 09933 A20 a20; 09934 A21 a21; 09935 A22 a22; 09936 }; 09937 09938 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 09939 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& t) 09940 { return t.template get<N>(); } 09941 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 09942 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> const& t) 09943 { return t.template get<N>(); } 09944 09945 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 09946 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> { 09947 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> value_type; 09948 tuple() {} 09949 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23) : 09950 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {} 09951 tuple(msgpack::object const& o) { o.convert(*this); } 09952 template <int N> typename tuple_element<value_type, N>::reference get() 09953 { return tuple_element<value_type, N>(*this).get(); } 09954 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 09955 { return const_tuple_element<value_type, N>(*this).get(); } 09956 09957 A0 a0; 09958 A1 a1; 09959 A2 a2; 09960 A3 a3; 09961 A4 a4; 09962 A5 a5; 09963 A6 a6; 09964 A7 a7; 09965 A8 a8; 09966 A9 a9; 09967 A10 a10; 09968 A11 a11; 09969 A12 a12; 09970 A13 a13; 09971 A14 a14; 09972 A15 a15; 09973 A16 a16; 09974 A17 a17; 09975 A18 a18; 09976 A19 a19; 09977 A20 a20; 09978 A21 a21; 09979 A22 a22; 09980 A23 a23; 09981 }; 09982 09983 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 09984 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& t) 09985 { return t.template get<N>(); } 09986 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 09987 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> const& t) 09988 { return t.template get<N>(); } 09989 09990 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 09991 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> { 09992 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> value_type; 09993 tuple() {} 09994 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24) : 09995 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24) {} 09996 tuple(msgpack::object const& o) { o.convert(*this); } 09997 template <int N> typename tuple_element<value_type, N>::reference get() 09998 { return tuple_element<value_type, N>(*this).get(); } 09999 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10000 { return const_tuple_element<value_type, N>(*this).get(); } 10001 10002 A0 a0; 10003 A1 a1; 10004 A2 a2; 10005 A3 a3; 10006 A4 a4; 10007 A5 a5; 10008 A6 a6; 10009 A7 a7; 10010 A8 a8; 10011 A9 a9; 10012 A10 a10; 10013 A11 a11; 10014 A12 a12; 10015 A13 a13; 10016 A14 a14; 10017 A15 a15; 10018 A16 a16; 10019 A17 a17; 10020 A18 a18; 10021 A19 a19; 10022 A20 a20; 10023 A21 a21; 10024 A22 a22; 10025 A23 a23; 10026 A24 a24; 10027 }; 10028 10029 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 10030 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& t) 10031 { return t.template get<N>(); } 10032 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 10033 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> const& t) 10034 { return t.template get<N>(); } 10035 10036 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 10037 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> { 10038 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> value_type; 10039 tuple() {} 10040 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25) : 10041 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {} 10042 tuple(msgpack::object const& o) { o.convert(*this); } 10043 template <int N> typename tuple_element<value_type, N>::reference get() 10044 { return tuple_element<value_type, N>(*this).get(); } 10045 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10046 { return const_tuple_element<value_type, N>(*this).get(); } 10047 10048 A0 a0; 10049 A1 a1; 10050 A2 a2; 10051 A3 a3; 10052 A4 a4; 10053 A5 a5; 10054 A6 a6; 10055 A7 a7; 10056 A8 a8; 10057 A9 a9; 10058 A10 a10; 10059 A11 a11; 10060 A12 a12; 10061 A13 a13; 10062 A14 a14; 10063 A15 a15; 10064 A16 a16; 10065 A17 a17; 10066 A18 a18; 10067 A19 a19; 10068 A20 a20; 10069 A21 a21; 10070 A22 a22; 10071 A23 a23; 10072 A24 a24; 10073 A25 a25; 10074 }; 10075 10076 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 10077 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& t) 10078 { return t.template get<N>(); } 10079 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 10080 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> const& t) 10081 { return t.template get<N>(); } 10082 10083 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 10084 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> { 10085 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> value_type; 10086 tuple() {} 10087 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26) : 10088 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26) {} 10089 tuple(msgpack::object const& o) { o.convert(*this); } 10090 template <int N> typename tuple_element<value_type, N>::reference get() 10091 { return tuple_element<value_type, N>(*this).get(); } 10092 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10093 { return const_tuple_element<value_type, N>(*this).get(); } 10094 10095 A0 a0; 10096 A1 a1; 10097 A2 a2; 10098 A3 a3; 10099 A4 a4; 10100 A5 a5; 10101 A6 a6; 10102 A7 a7; 10103 A8 a8; 10104 A9 a9; 10105 A10 a10; 10106 A11 a11; 10107 A12 a12; 10108 A13 a13; 10109 A14 a14; 10110 A15 a15; 10111 A16 a16; 10112 A17 a17; 10113 A18 a18; 10114 A19 a19; 10115 A20 a20; 10116 A21 a21; 10117 A22 a22; 10118 A23 a23; 10119 A24 a24; 10120 A25 a25; 10121 A26 a26; 10122 }; 10123 10124 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 10125 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& t) 10126 { return t.template get<N>(); } 10127 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 10128 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> const& t) 10129 { return t.template get<N>(); } 10130 10131 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 10132 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> { 10133 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> value_type; 10134 tuple() {} 10135 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27) : 10136 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {} 10137 tuple(msgpack::object const& o) { o.convert(*this); } 10138 template <int N> typename tuple_element<value_type, N>::reference get() 10139 { return tuple_element<value_type, N>(*this).get(); } 10140 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10141 { return const_tuple_element<value_type, N>(*this).get(); } 10142 10143 A0 a0; 10144 A1 a1; 10145 A2 a2; 10146 A3 a3; 10147 A4 a4; 10148 A5 a5; 10149 A6 a6; 10150 A7 a7; 10151 A8 a8; 10152 A9 a9; 10153 A10 a10; 10154 A11 a11; 10155 A12 a12; 10156 A13 a13; 10157 A14 a14; 10158 A15 a15; 10159 A16 a16; 10160 A17 a17; 10161 A18 a18; 10162 A19 a19; 10163 A20 a20; 10164 A21 a21; 10165 A22 a22; 10166 A23 a23; 10167 A24 a24; 10168 A25 a25; 10169 A26 a26; 10170 A27 a27; 10171 }; 10172 10173 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 10174 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& t) 10175 { return t.template get<N>(); } 10176 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 10177 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> const& t) 10178 { return t.template get<N>(); } 10179 10180 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 10181 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> { 10182 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> value_type; 10183 tuple() {} 10184 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28) : 10185 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28) {} 10186 tuple(msgpack::object const& o) { o.convert(*this); } 10187 template <int N> typename tuple_element<value_type, N>::reference get() 10188 { return tuple_element<value_type, N>(*this).get(); } 10189 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10190 { return const_tuple_element<value_type, N>(*this).get(); } 10191 10192 A0 a0; 10193 A1 a1; 10194 A2 a2; 10195 A3 a3; 10196 A4 a4; 10197 A5 a5; 10198 A6 a6; 10199 A7 a7; 10200 A8 a8; 10201 A9 a9; 10202 A10 a10; 10203 A11 a11; 10204 A12 a12; 10205 A13 a13; 10206 A14 a14; 10207 A15 a15; 10208 A16 a16; 10209 A17 a17; 10210 A18 a18; 10211 A19 a19; 10212 A20 a20; 10213 A21 a21; 10214 A22 a22; 10215 A23 a23; 10216 A24 a24; 10217 A25 a25; 10218 A26 a26; 10219 A27 a27; 10220 A28 a28; 10221 }; 10222 10223 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 10224 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& t) 10225 { return t.template get<N>(); } 10226 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 10227 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> const& t) 10228 { return t.template get<N>(); } 10229 10230 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 10231 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> { 10232 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> value_type; 10233 tuple() {} 10234 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29) : 10235 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {} 10236 tuple(msgpack::object const& o) { o.convert(*this); } 10237 template <int N> typename tuple_element<value_type, N>::reference get() 10238 { return tuple_element<value_type, N>(*this).get(); } 10239 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10240 { return const_tuple_element<value_type, N>(*this).get(); } 10241 10242 A0 a0; 10243 A1 a1; 10244 A2 a2; 10245 A3 a3; 10246 A4 a4; 10247 A5 a5; 10248 A6 a6; 10249 A7 a7; 10250 A8 a8; 10251 A9 a9; 10252 A10 a10; 10253 A11 a11; 10254 A12 a12; 10255 A13 a13; 10256 A14 a14; 10257 A15 a15; 10258 A16 a16; 10259 A17 a17; 10260 A18 a18; 10261 A19 a19; 10262 A20 a20; 10263 A21 a21; 10264 A22 a22; 10265 A23 a23; 10266 A24 a24; 10267 A25 a25; 10268 A26 a26; 10269 A27 a27; 10270 A28 a28; 10271 A29 a29; 10272 }; 10273 10274 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 10275 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& t) 10276 { return t.template get<N>(); } 10277 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 10278 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> const& t) 10279 { return t.template get<N>(); } 10280 10281 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 10282 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> { 10283 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> value_type; 10284 tuple() {} 10285 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29, typename tuple_type<A30>::transparent_reference _a30) : 10286 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30) {} 10287 tuple(msgpack::object const& o) { o.convert(*this); } 10288 template <int N> typename tuple_element<value_type, N>::reference get() 10289 { return tuple_element<value_type, N>(*this).get(); } 10290 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10291 { return const_tuple_element<value_type, N>(*this).get(); } 10292 10293 A0 a0; 10294 A1 a1; 10295 A2 a2; 10296 A3 a3; 10297 A4 a4; 10298 A5 a5; 10299 A6 a6; 10300 A7 a7; 10301 A8 a8; 10302 A9 a9; 10303 A10 a10; 10304 A11 a11; 10305 A12 a12; 10306 A13 a13; 10307 A14 a14; 10308 A15 a15; 10309 A16 a16; 10310 A17 a17; 10311 A18 a18; 10312 A19 a19; 10313 A20 a20; 10314 A21 a21; 10315 A22 a22; 10316 A23 a23; 10317 A24 a24; 10318 A25 a25; 10319 A26 a26; 10320 A27 a27; 10321 A28 a28; 10322 A29 a29; 10323 A30 a30; 10324 }; 10325 10326 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 10327 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& t) 10328 { return t.template get<N>(); } 10329 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 10330 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> const& t) 10331 { return t.template get<N>(); } 10332 10333 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 10334 struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> { 10335 typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> value_type; 10336 tuple() {} 10337 tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29, typename tuple_type<A30>::transparent_reference _a30, typename tuple_type<A31>::transparent_reference _a31) : 10338 a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {} 10339 tuple(msgpack::object const& o) { o.convert(*this); } 10340 template <int N> typename tuple_element<value_type, N>::reference get() 10341 { return tuple_element<value_type, N>(*this).get(); } 10342 template <int N> typename const_tuple_element<value_type, N>::const_reference get() const 10343 { return const_tuple_element<value_type, N>(*this).get(); } 10344 10345 A0 a0; 10346 A1 a1; 10347 A2 a2; 10348 A3 a3; 10349 A4 a4; 10350 A5 a5; 10351 A6 a6; 10352 A7 a7; 10353 A8 a8; 10354 A9 a9; 10355 A10 a10; 10356 A11 a11; 10357 A12 a12; 10358 A13 a13; 10359 A14 a14; 10360 A15 a15; 10361 A16 a16; 10362 A17 a17; 10363 A18 a18; 10364 A19 a19; 10365 A20 a20; 10366 A21 a21; 10367 A22 a22; 10368 A23 a23; 10369 A24 a24; 10370 A25 a25; 10371 A26 a26; 10372 A27 a27; 10373 A28 a28; 10374 A29 a29; 10375 A30 a30; 10376 A31 a31; 10377 }; 10378 10379 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 10380 inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& t) 10381 { return t.template get<N>(); } 10382 template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 10383 inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> const& t) 10384 { return t.template get<N>(); } 10385 10386 /// @endcond 10387 10388 inline tuple<> make_tuple() 10389 { 10390 return tuple<>(); 10391 } 10392 10393 /// @cond 10394 10395 template <typename A0> 10396 inline tuple<A0> make_tuple(typename tuple_type<A0>::transparent_reference a0) 10397 { 10398 return tuple<A0>(a0); 10399 } 10400 10401 template <typename A0, typename A1> 10402 inline tuple<A0, A1> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1) 10403 { 10404 return tuple<A0, A1>(a0, a1); 10405 } 10406 10407 template <typename A0, typename A1, typename A2> 10408 inline tuple<A0, A1, A2> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2) 10409 { 10410 return tuple<A0, A1, A2>(a0, a1, a2); 10411 } 10412 10413 template <typename A0, typename A1, typename A2, typename A3> 10414 inline tuple<A0, A1, A2, A3> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3) 10415 { 10416 return tuple<A0, A1, A2, A3>(a0, a1, a2, a3); 10417 } 10418 10419 template <typename A0, typename A1, typename A2, typename A3, typename A4> 10420 inline tuple<A0, A1, A2, A3, A4> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4) 10421 { 10422 return tuple<A0, A1, A2, A3, A4>(a0, a1, a2, a3, a4); 10423 } 10424 10425 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 10426 inline tuple<A0, A1, A2, A3, A4, A5> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5) 10427 { 10428 return tuple<A0, A1, A2, A3, A4, A5>(a0, a1, a2, a3, a4, a5); 10429 } 10430 10431 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 10432 inline tuple<A0, A1, A2, A3, A4, A5, A6> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6) 10433 { 10434 return tuple<A0, A1, A2, A3, A4, A5, A6>(a0, a1, a2, a3, a4, a5, a6); 10435 } 10436 10437 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 10438 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7) 10439 { 10440 return tuple<A0, A1, A2, A3, A4, A5, A6, A7>(a0, a1, a2, a3, a4, a5, a6, a7); 10441 } 10442 10443 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 10444 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8) 10445 { 10446 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>(a0, a1, a2, a3, a4, a5, a6, a7, a8); 10447 } 10448 10449 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 10450 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9) 10451 { 10452 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); 10453 } 10454 10455 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 10456 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10) 10457 { 10458 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); 10459 } 10460 10461 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 10462 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11) 10463 { 10464 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); 10465 } 10466 10467 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 10468 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12) 10469 { 10470 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); 10471 } 10472 10473 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 10474 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13) 10475 { 10476 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); 10477 } 10478 10479 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 10480 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14) 10481 { 10482 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); 10483 } 10484 10485 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 10486 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15) 10487 { 10488 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); 10489 } 10490 10491 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 10492 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16) 10493 { 10494 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); 10495 } 10496 10497 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 10498 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17) 10499 { 10500 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); 10501 } 10502 10503 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 10504 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18) 10505 { 10506 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); 10507 } 10508 10509 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 10510 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19) 10511 { 10512 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); 10513 } 10514 10515 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 10516 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20) 10517 { 10518 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); 10519 } 10520 10521 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 10522 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21) 10523 { 10524 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21); 10525 } 10526 10527 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 10528 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22) 10529 { 10530 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22); 10531 } 10532 10533 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 10534 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23) 10535 { 10536 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23); 10537 } 10538 10539 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 10540 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24) 10541 { 10542 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24); 10543 } 10544 10545 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 10546 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25) 10547 { 10548 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25); 10549 } 10550 10551 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 10552 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26) 10553 { 10554 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26); 10555 } 10556 10557 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 10558 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27) 10559 { 10560 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27); 10561 } 10562 10563 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 10564 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28) 10565 { 10566 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28); 10567 } 10568 10569 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 10570 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29) 10571 { 10572 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29); 10573 } 10574 10575 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 10576 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29, typename tuple_type<A30>::transparent_reference a30) 10577 { 10578 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30); 10579 } 10580 10581 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 10582 inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29, typename tuple_type<A30>::transparent_reference a30, typename tuple_type<A31>::transparent_reference a31) 10583 { 10584 return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31); 10585 } 10586 10587 /// @endcond 10588 10589 } // namespace type 10590 10591 namespace adaptor { 10592 10593 template <> 10594 struct convert<type::tuple<> > { 10595 msgpack::object const& operator()( 10596 msgpack::object const& o, 10597 type::tuple<>&) const { 10598 if(o.type != msgpack::type::ARRAY) { 10599 printf("throw msgpack::type_error()"); 10600 // throw msgpack::type_error(); 10601 } 10602 return o; 10603 } 10604 }; 10605 10606 /// @cond 10607 10608 template <typename A0> 10609 struct convert<type::tuple<A0> > { 10610 msgpack::object const& operator()( 10611 msgpack::object const& o, 10612 type::tuple<A0>& v) const { 10613 if(o.type != msgpack::type::ARRAY) { 10614 printf("throw msgpack::type_error()"); 10615 // throw msgpack::type_error(); 10616 } 10617 if(o.via.array.size < 1) { 10618 printf("throw msgpack::type_error()"); 10619 // throw msgpack::type_error(); 10620 } 10621 10622 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10623 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10624 return o; 10625 } 10626 }; 10627 10628 template <typename A0, typename A1> 10629 struct convert<type::tuple<A0, A1> > { 10630 msgpack::object const& operator()( 10631 msgpack::object const& o, 10632 type::tuple<A0, A1>& v) const { 10633 if(o.type != msgpack::type::ARRAY) { 10634 printf("throw msgpack::type_error()"); 10635 // throw msgpack::type_error(); 10636 } 10637 if(o.via.array.size < 2) { 10638 printf("throw msgpack::type_error()"); 10639 // throw msgpack::type_error(); 10640 } 10641 10642 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10643 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10644 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10645 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10646 return o; 10647 } 10648 }; 10649 10650 template <typename A0, typename A1, typename A2> 10651 struct convert<type::tuple<A0, A1, A2> > { 10652 msgpack::object const& operator()( 10653 msgpack::object const& o, 10654 type::tuple<A0, A1, A2>& v) const { 10655 if(o.type != msgpack::type::ARRAY) { 10656 printf("throw msgpack::type_error()"); 10657 // throw msgpack::type_error(); 10658 } 10659 if(o.via.array.size < 3) { 10660 printf("throw msgpack::type_error()"); 10661 // throw msgpack::type_error(); 10662 } 10663 10664 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10665 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10666 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10667 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10668 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10669 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10670 return o; 10671 } 10672 }; 10673 10674 template <typename A0, typename A1, typename A2, typename A3> 10675 struct convert<type::tuple<A0, A1, A2, A3> > { 10676 msgpack::object const& operator()( 10677 msgpack::object const& o, 10678 type::tuple<A0, A1, A2, A3>& v) const { 10679 if(o.type != msgpack::type::ARRAY) { 10680 printf("throw msgpack::type_error()"); 10681 // throw msgpack::type_error(); 10682 } 10683 if(o.via.array.size < 4) { 10684 printf("throw msgpack::type_error()"); 10685 // throw msgpack::type_error(); 10686 } 10687 10688 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10689 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10690 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10691 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10692 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10693 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10694 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10695 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10696 return o; 10697 } 10698 }; 10699 10700 template <typename A0, typename A1, typename A2, typename A3, typename A4> 10701 struct convert<type::tuple<A0, A1, A2, A3, A4> > { 10702 msgpack::object const& operator()( 10703 msgpack::object const& o, 10704 type::tuple<A0, A1, A2, A3, A4>& v) const { 10705 if(o.type != msgpack::type::ARRAY) { 10706 printf("throw msgpack::type_error()"); 10707 // throw msgpack::type_error(); 10708 } 10709 if(o.via.array.size < 5) { 10710 printf("throw msgpack::type_error()"); 10711 // throw msgpack::type_error(); 10712 } 10713 10714 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10715 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10716 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10717 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10718 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10719 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10720 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10721 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10722 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10723 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10724 return o; 10725 } 10726 }; 10727 10728 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 10729 struct convert<type::tuple<A0, A1, A2, A3, A4, A5> > { 10730 msgpack::object const& operator()( 10731 msgpack::object const& o, 10732 type::tuple<A0, A1, A2, A3, A4, A5>& v) const { 10733 if(o.type != msgpack::type::ARRAY) { 10734 printf("throw msgpack::type_error()"); 10735 // throw msgpack::type_error(); 10736 } 10737 if(o.via.array.size < 6) { 10738 printf("throw msgpack::type_error()"); 10739 // throw msgpack::type_error(); 10740 } 10741 10742 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10743 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10744 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10745 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10746 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10747 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10748 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10749 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10750 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10751 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10752 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10753 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 10754 return o; 10755 } 10756 }; 10757 10758 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 10759 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6> > { 10760 msgpack::object const& operator()( 10761 msgpack::object const& o, 10762 type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const { 10763 if(o.type != msgpack::type::ARRAY) { 10764 printf("throw msgpack::type_error()"); 10765 // throw msgpack::type_error(); 10766 } 10767 if(o.via.array.size < 7) { 10768 printf("throw msgpack::type_error()"); 10769 // throw msgpack::type_error(); 10770 } 10771 10772 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10773 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10774 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10775 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10776 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10777 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10778 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10779 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10780 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10781 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10782 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10783 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 10784 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10785 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 10786 return o; 10787 } 10788 }; 10789 10790 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 10791 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> > { 10792 msgpack::object const& operator()( 10793 msgpack::object const& o, 10794 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const { 10795 if(o.type != msgpack::type::ARRAY) { 10796 printf("throw msgpack::type_error()"); 10797 // throw msgpack::type_error(); 10798 } 10799 if(o.via.array.size < 8) { 10800 printf("throw msgpack::type_error()"); 10801 // throw msgpack::type_error(); 10802 } 10803 10804 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10805 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10806 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10807 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10808 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10809 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10810 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10811 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10812 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10813 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10814 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10815 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 10816 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10817 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 10818 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10819 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 10820 return o; 10821 } 10822 }; 10823 10824 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 10825 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> > { 10826 msgpack::object const& operator()( 10827 msgpack::object const& o, 10828 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const { 10829 if(o.type != msgpack::type::ARRAY) { 10830 printf("throw msgpack::type_error()"); 10831 // throw msgpack::type_error(); 10832 } 10833 if(o.via.array.size < 9) { 10834 printf("throw msgpack::type_error()"); 10835 // throw msgpack::type_error(); 10836 } 10837 10838 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10839 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10840 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10841 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10842 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10843 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10844 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10845 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10846 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10847 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10848 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10849 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 10850 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10851 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 10852 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10853 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 10854 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10855 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 10856 return o; 10857 } 10858 }; 10859 10860 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 10861 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> > { 10862 msgpack::object const& operator()( 10863 msgpack::object const& o, 10864 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const { 10865 if(o.type != msgpack::type::ARRAY) { 10866 printf("throw msgpack::type_error()"); 10867 // throw msgpack::type_error(); 10868 } 10869 if(o.via.array.size < 10) { 10870 printf("throw msgpack::type_error()"); 10871 // throw msgpack::type_error(); 10872 } 10873 10874 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10875 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10876 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10877 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10878 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10879 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10880 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10881 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10882 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10883 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10884 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10885 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 10886 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10887 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 10888 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10889 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 10890 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10891 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 10892 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10893 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 10894 return o; 10895 } 10896 }; 10897 10898 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 10899 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> > { 10900 msgpack::object const& operator()( 10901 msgpack::object const& o, 10902 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const { 10903 if(o.type != msgpack::type::ARRAY) { 10904 printf("throw msgpack::type_error()"); 10905 // throw msgpack::type_error(); 10906 } 10907 if(o.via.array.size < 11) { 10908 printf("throw msgpack::type_error()"); 10909 // throw msgpack::type_error(); 10910 } 10911 10912 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10913 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10914 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10915 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10916 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10917 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10918 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10919 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10920 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10921 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10922 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10923 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 10924 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10925 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 10926 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10927 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 10928 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10929 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 10930 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10931 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 10932 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10933 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 10934 return o; 10935 } 10936 }; 10937 10938 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 10939 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> > { 10940 msgpack::object const& operator()( 10941 msgpack::object const& o, 10942 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const { 10943 if(o.type != msgpack::type::ARRAY) { 10944 printf("throw msgpack::type_error()"); 10945 // throw msgpack::type_error(); 10946 } 10947 if(o.via.array.size < 12) { 10948 printf("throw msgpack::type_error()"); 10949 // throw msgpack::type_error(); 10950 } 10951 10952 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10953 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10954 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10955 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10956 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10957 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 10958 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10959 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 10960 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10961 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 10962 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10963 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 10964 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10965 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 10966 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10967 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 10968 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10969 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 10970 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10971 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 10972 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10973 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 10974 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10975 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 10976 return o; 10977 } 10978 }; 10979 10980 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 10981 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> > { 10982 msgpack::object const& operator()( 10983 msgpack::object const& o, 10984 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const { 10985 if(o.type != msgpack::type::ARRAY) { 10986 printf("throw msgpack::type_error()"); 10987 // throw msgpack::type_error(); 10988 } 10989 if(o.via.array.size < 13) { 10990 printf("throw msgpack::type_error()"); 10991 // throw msgpack::type_error(); 10992 } 10993 10994 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10995 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 10996 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10997 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 10998 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 10999 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11000 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11001 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11002 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11003 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11004 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11005 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11006 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11007 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11008 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11009 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11010 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11011 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11012 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11013 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11014 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11015 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11016 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11017 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11018 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11019 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11020 return o; 11021 } 11022 }; 11023 11024 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 11025 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> > { 11026 msgpack::object const& operator()( 11027 msgpack::object const& o, 11028 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const { 11029 if(o.type != msgpack::type::ARRAY) { 11030 printf("throw msgpack::type_error()"); 11031 // throw msgpack::type_error(); 11032 } 11033 if(o.via.array.size < 14) { 11034 printf("throw msgpack::type_error()"); 11035 // throw msgpack::type_error(); 11036 } 11037 11038 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11039 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11040 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11041 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11042 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11043 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11044 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11045 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11046 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11047 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11048 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11049 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11050 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11051 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11052 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11053 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11054 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11055 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11056 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11057 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11058 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11059 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11060 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11061 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11062 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11063 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11064 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11065 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11066 return o; 11067 } 11068 }; 11069 11070 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 11071 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> > { 11072 msgpack::object const& operator()( 11073 msgpack::object const& o, 11074 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const { 11075 if(o.type != msgpack::type::ARRAY) { 11076 printf("throw msgpack::type_error()"); 11077 // throw msgpack::type_error(); 11078 } 11079 if(o.via.array.size < 15) { 11080 printf("throw msgpack::type_error()"); 11081 // throw msgpack::type_error(); 11082 } 11083 11084 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11085 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11086 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11087 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11088 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11089 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11090 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11091 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11092 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11093 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11094 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11095 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11096 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11097 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11098 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11099 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11100 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11101 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11102 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11103 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11104 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11105 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11106 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11107 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11108 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11109 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11110 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11111 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11112 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11113 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11114 return o; 11115 } 11116 }; 11117 11118 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 11119 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> > { 11120 msgpack::object const& operator()( 11121 msgpack::object const& o, 11122 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const { 11123 if(o.type != msgpack::type::ARRAY) { 11124 printf("throw msgpack::type_error()"); 11125 // throw msgpack::type_error(); 11126 } 11127 if(o.via.array.size < 16) { 11128 printf("throw msgpack::type_error()"); 11129 // throw msgpack::type_error(); 11130 } 11131 11132 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11133 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11134 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11135 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11136 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11137 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11138 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11139 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11140 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11141 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11142 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11143 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11144 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11145 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11146 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11147 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11148 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11149 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11150 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11151 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11152 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11153 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11154 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11155 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11156 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11157 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11158 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11159 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11160 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11161 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11162 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11163 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11164 return o; 11165 } 11166 }; 11167 11168 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 11169 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> > { 11170 msgpack::object const& operator()( 11171 msgpack::object const& o, 11172 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const { 11173 if(o.type != msgpack::type::ARRAY) { 11174 printf("throw msgpack::type_error()"); 11175 // throw msgpack::type_error(); 11176 } 11177 if(o.via.array.size < 17) { 11178 printf("throw msgpack::type_error()"); 11179 // throw msgpack::type_error(); 11180 } 11181 11182 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11183 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11184 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11185 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11186 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11187 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11188 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11189 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11190 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11191 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11192 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11193 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11194 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11195 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11196 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11197 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11198 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11199 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11200 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11201 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11202 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11203 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11204 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11205 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11206 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11207 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11208 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11209 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11210 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11211 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11212 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11213 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11214 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11215 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11216 return o; 11217 } 11218 }; 11219 11220 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 11221 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> > { 11222 msgpack::object const& operator()( 11223 msgpack::object const& o, 11224 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const { 11225 if(o.type != msgpack::type::ARRAY) { 11226 printf("throw msgpack::type_error()"); 11227 // throw msgpack::type_error(); 11228 } 11229 if(o.via.array.size < 18) { 11230 printf("throw msgpack::type_error()"); 11231 // throw msgpack::type_error(); 11232 } 11233 11234 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11235 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11236 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11237 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11238 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11239 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11240 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11241 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11242 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11243 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11244 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11245 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11246 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11247 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11248 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11249 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11250 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11251 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11252 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11253 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11254 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11255 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11256 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11257 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11258 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11259 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11260 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11261 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11262 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11263 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11264 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11265 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11266 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11267 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11268 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11269 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11270 return o; 11271 } 11272 }; 11273 11274 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 11275 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> > { 11276 msgpack::object const& operator()( 11277 msgpack::object const& o, 11278 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const { 11279 if(o.type != msgpack::type::ARRAY) { 11280 printf("throw msgpack::type_error()"); 11281 // throw msgpack::type_error(); 11282 } 11283 if(o.via.array.size < 19) { 11284 printf("throw msgpack::type_error()"); 11285 // throw msgpack::type_error(); 11286 } 11287 11288 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11289 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11290 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11291 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11292 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11293 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11294 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11295 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11296 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11297 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11298 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11299 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11300 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11301 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11302 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11303 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11304 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11305 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11306 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11307 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11308 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11309 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11310 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11311 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11312 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11313 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11314 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11315 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11316 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11317 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11318 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11319 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11320 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11321 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11322 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11323 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11324 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11325 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11326 return o; 11327 } 11328 }; 11329 11330 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 11331 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> > { 11332 msgpack::object const& operator()( 11333 msgpack::object const& o, 11334 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const { 11335 if(o.type != msgpack::type::ARRAY) { 11336 printf("throw msgpack::type_error()"); 11337 // throw msgpack::type_error(); 11338 } 11339 if(o.via.array.size < 20) { 11340 printf("throw msgpack::type_error()"); 11341 // throw msgpack::type_error(); 11342 } 11343 11344 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11345 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11346 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11347 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11348 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11349 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11350 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11351 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11352 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11353 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11354 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11355 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11356 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11357 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11358 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11359 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11360 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11361 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11362 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11363 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11364 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11365 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11366 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11367 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11368 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11369 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11370 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11371 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11372 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11373 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11374 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11375 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11376 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11377 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11378 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11379 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11380 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11381 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11382 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11383 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11384 return o; 11385 } 11386 }; 11387 11388 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 11389 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> > { 11390 msgpack::object const& operator()( 11391 msgpack::object const& o, 11392 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const { 11393 if(o.type != msgpack::type::ARRAY) { 11394 printf("throw msgpack::type_error()"); 11395 // throw msgpack::type_error(); 11396 } 11397 if(o.via.array.size < 21) { 11398 printf("throw msgpack::type_error()"); 11399 // throw msgpack::type_error(); 11400 } 11401 11402 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11403 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11404 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11405 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11406 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11407 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11408 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11409 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11410 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11411 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11412 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11413 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11414 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11415 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11416 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11417 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11418 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11419 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11420 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11421 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11422 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11423 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11424 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11425 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11426 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11427 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11428 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11429 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11430 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11431 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11432 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11433 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11434 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11435 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11436 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11437 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11438 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11439 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11440 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11441 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11442 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11443 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11444 return o; 11445 } 11446 }; 11447 11448 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 11449 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> > { 11450 msgpack::object const& operator()( 11451 msgpack::object const& o, 11452 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const { 11453 if(o.type != msgpack::type::ARRAY) { 11454 printf("throw msgpack::type_error()"); 11455 // throw msgpack::type_error(); 11456 } 11457 if(o.via.array.size < 22) { 11458 printf("throw msgpack::type_error()"); 11459 // throw msgpack::type_error(); 11460 } 11461 11462 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11463 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11464 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11465 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11466 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11467 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11468 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11469 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11470 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11471 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11472 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11473 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11474 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11475 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11476 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11477 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11478 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11479 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11480 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11481 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11482 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11483 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11484 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11485 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11486 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11487 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11488 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11489 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11490 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11491 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11492 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11493 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11494 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11495 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11496 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11497 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11498 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11499 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11500 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11501 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11502 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11503 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11504 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11505 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11506 return o; 11507 } 11508 }; 11509 11510 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 11511 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> > { 11512 msgpack::object const& operator()( 11513 msgpack::object const& o, 11514 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const { 11515 if(o.type != msgpack::type::ARRAY) { 11516 printf("throw msgpack::type_error()"); 11517 // throw msgpack::type_error(); 11518 } 11519 if(o.via.array.size < 23) { 11520 printf("throw msgpack::type_error()"); 11521 // throw msgpack::type_error(); 11522 } 11523 11524 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11525 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11526 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11527 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11528 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11529 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11530 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11531 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11532 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11533 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11534 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11535 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11536 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11537 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11538 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11539 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11540 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11541 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11542 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11543 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11544 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11545 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11546 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11547 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11548 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11549 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11550 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11551 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11552 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11553 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11554 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11555 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11556 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11557 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11558 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11559 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11560 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11561 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11562 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11563 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11564 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11565 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11566 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11567 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11568 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11569 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 11570 return o; 11571 } 11572 }; 11573 11574 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 11575 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> > { 11576 msgpack::object const& operator()( 11577 msgpack::object const& o, 11578 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const { 11579 if(o.type != msgpack::type::ARRAY) { 11580 printf("throw msgpack::type_error()"); 11581 // throw msgpack::type_error(); 11582 } 11583 if(o.via.array.size < 24) { 11584 printf("throw msgpack::type_error()"); 11585 // throw msgpack::type_error(); 11586 } 11587 11588 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11589 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11590 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11591 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11592 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11593 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11594 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11595 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11596 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11597 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11598 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11599 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11600 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11601 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11602 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11603 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11604 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11605 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11606 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11607 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11608 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11609 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11610 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11611 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11612 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11613 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11614 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11615 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11616 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11617 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11618 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11619 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11620 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11621 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11622 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11623 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11624 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11625 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11626 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11627 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11628 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11629 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11630 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11631 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11632 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11633 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 11634 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11635 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 11636 return o; 11637 } 11638 }; 11639 11640 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 11641 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> > { 11642 msgpack::object const& operator()( 11643 msgpack::object const& o, 11644 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const { 11645 if(o.type != msgpack::type::ARRAY) { 11646 printf("throw msgpack::type_error()"); 11647 // throw msgpack::type_error(); 11648 } 11649 if(o.via.array.size < 25) { 11650 printf("throw msgpack::type_error()"); 11651 // throw msgpack::type_error(); 11652 } 11653 11654 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11655 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11656 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11657 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11658 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11659 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11660 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11661 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11662 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11663 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11664 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11665 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11666 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11667 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11668 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11669 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11670 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11671 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11672 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11673 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11674 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11675 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11676 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11677 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11678 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11679 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11680 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11681 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11682 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11683 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11684 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11685 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11686 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11687 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11688 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11689 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11690 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11691 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11692 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11693 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11694 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11695 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11696 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11697 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11698 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11699 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 11700 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11701 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 11702 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11703 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 11704 return o; 11705 } 11706 }; 11707 11708 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 11709 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> > { 11710 msgpack::object const& operator()( 11711 msgpack::object const& o, 11712 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const { 11713 if(o.type != msgpack::type::ARRAY) { 11714 printf("throw msgpack::type_error()"); 11715 // throw msgpack::type_error(); 11716 } 11717 if(o.via.array.size < 26) { 11718 printf("throw msgpack::type_error()"); 11719 // throw msgpack::type_error(); 11720 } 11721 11722 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11723 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11724 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11725 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11726 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11727 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11728 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11729 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11730 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11731 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11732 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11733 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11734 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11735 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11736 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11737 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11738 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11739 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11740 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11741 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11742 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11743 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11744 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11745 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11746 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11747 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11748 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11749 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11750 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11751 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11752 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11753 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11754 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11755 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11756 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11757 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11758 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11759 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11760 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11761 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11762 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11763 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11764 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11765 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11766 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11767 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 11768 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11769 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 11770 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11771 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 11772 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11773 o.via.array.ptr[25].msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>()); 11774 return o; 11775 } 11776 }; 11777 11778 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 11779 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> > { 11780 msgpack::object const& operator()( 11781 msgpack::object const& o, 11782 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const { 11783 if(o.type != msgpack::type::ARRAY) { 11784 printf("throw msgpack::type_error()"); 11785 // throw msgpack::type_error(); 11786 } 11787 if(o.via.array.size < 27) { 11788 printf("throw msgpack::type_error()"); 11789 // throw msgpack::type_error(); 11790 } 11791 11792 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11793 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11794 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11795 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11796 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11797 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11798 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11799 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11800 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11801 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11802 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11803 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11804 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11805 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11806 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11807 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11808 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11809 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11810 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11811 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11812 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11813 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11814 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11815 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11816 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11817 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11818 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11819 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11820 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11821 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11822 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11823 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11824 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11825 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11826 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11827 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11828 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11829 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11830 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11831 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11832 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11833 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11834 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11835 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11836 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11837 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 11838 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11839 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 11840 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11841 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 11842 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11843 o.via.array.ptr[25].msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>()); 11844 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11845 o.via.array.ptr[26].msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>()); 11846 return o; 11847 } 11848 }; 11849 11850 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 11851 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> > { 11852 msgpack::object const& operator()( 11853 msgpack::object const& o, 11854 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const { 11855 if(o.type != msgpack::type::ARRAY) { 11856 printf("throw msgpack::type_error()"); 11857 // throw msgpack::type_error(); 11858 } 11859 if(o.via.array.size < 28) { 11860 printf("throw msgpack::type_error()"); 11861 // throw msgpack::type_error(); 11862 } 11863 11864 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11865 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11866 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11867 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11868 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11869 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11870 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11871 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11872 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11873 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11874 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11875 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11876 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11877 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11878 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11879 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11880 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11881 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11882 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11883 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11884 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11885 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11886 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11887 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11888 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11889 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11890 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11891 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11892 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11893 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11894 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11895 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11896 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11897 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11898 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11899 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11900 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11901 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11902 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11903 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11904 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11905 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11906 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11907 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11908 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11909 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 11910 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11911 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 11912 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11913 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 11914 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11915 o.via.array.ptr[25].msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>()); 11916 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11917 o.via.array.ptr[26].msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>()); 11918 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11919 o.via.array.ptr[27].msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>()); 11920 return o; 11921 } 11922 }; 11923 11924 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 11925 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> > { 11926 msgpack::object const& operator()( 11927 msgpack::object const& o, 11928 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const { 11929 if(o.type != msgpack::type::ARRAY) { 11930 printf("throw msgpack::type_error()"); 11931 // throw msgpack::type_error(); 11932 } 11933 if(o.via.array.size < 29) { 11934 printf("throw msgpack::type_error()"); 11935 // throw msgpack::type_error(); 11936 } 11937 11938 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11939 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 11940 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11941 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 11942 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11943 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 11944 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11945 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 11946 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11947 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 11948 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11949 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 11950 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11951 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 11952 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11953 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 11954 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11955 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 11956 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11957 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 11958 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11959 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 11960 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11961 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 11962 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11963 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 11964 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11965 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 11966 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11967 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 11968 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11969 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 11970 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11971 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 11972 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11973 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 11974 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11975 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 11976 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11977 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 11978 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11979 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 11980 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11981 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 11982 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11983 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 11984 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11985 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 11986 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11987 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 11988 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11989 o.via.array.ptr[25].msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>()); 11990 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11991 o.via.array.ptr[26].msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>()); 11992 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11993 o.via.array.ptr[27].msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>()); 11994 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 11995 o.via.array.ptr[28].msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>()); 11996 return o; 11997 } 11998 }; 11999 12000 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 12001 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> > { 12002 msgpack::object const& operator()( 12003 msgpack::object const& o, 12004 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const { 12005 if(o.type != msgpack::type::ARRAY) { 12006 printf("throw msgpack::type_error()"); 12007 // throw msgpack::type_error(); 12008 } 12009 if(o.via.array.size < 30) { 12010 printf("throw msgpack::type_error()"); 12011 // throw msgpack::type_error(); 12012 } 12013 12014 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12015 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 12016 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12017 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 12018 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12019 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 12020 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12021 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 12022 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12023 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 12024 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12025 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 12026 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12027 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 12028 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12029 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 12030 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12031 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 12032 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12033 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 12034 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12035 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 12036 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12037 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 12038 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12039 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 12040 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12041 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 12042 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12043 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 12044 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12045 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 12046 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12047 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 12048 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12049 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 12050 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12051 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 12052 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12053 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 12054 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12055 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 12056 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12057 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 12058 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12059 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 12060 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12061 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 12062 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12063 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 12064 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12065 o.via.array.ptr[25].msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>()); 12066 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12067 o.via.array.ptr[26].msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>()); 12068 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12069 o.via.array.ptr[27].msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>()); 12070 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12071 o.via.array.ptr[28].msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>()); 12072 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12073 o.via.array.ptr[29].msgpack::object::convert<typename type::tuple_type<A29>::type>(v.template get<29>()); 12074 return o; 12075 } 12076 }; 12077 12078 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 12079 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> > { 12080 msgpack::object const& operator()( 12081 msgpack::object const& o, 12082 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const { 12083 if(o.type != msgpack::type::ARRAY) { 12084 printf("throw msgpack::type_error()"); 12085 // throw msgpack::type_error(); 12086 } 12087 if(o.via.array.size < 31) { 12088 printf("throw msgpack::type_error()"); 12089 // throw msgpack::type_error(); 12090 } 12091 12092 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12093 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 12094 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12095 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 12096 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12097 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 12098 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12099 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 12100 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12101 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 12102 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12103 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 12104 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12105 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 12106 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12107 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 12108 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12109 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 12110 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12111 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 12112 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12113 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 12114 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12115 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 12116 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12117 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 12118 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12119 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 12120 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12121 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 12122 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12123 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 12124 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12125 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 12126 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12127 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 12128 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12129 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 12130 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12131 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 12132 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12133 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 12134 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12135 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 12136 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12137 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 12138 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12139 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 12140 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12141 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 12142 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12143 o.via.array.ptr[25].msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>()); 12144 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12145 o.via.array.ptr[26].msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>()); 12146 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12147 o.via.array.ptr[27].msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>()); 12148 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12149 o.via.array.ptr[28].msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>()); 12150 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12151 o.via.array.ptr[29].msgpack::object::convert<typename type::tuple_type<A29>::type>(v.template get<29>()); 12152 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12153 o.via.array.ptr[30].msgpack::object::convert<typename type::tuple_type<A30>::type>(v.template get<30>()); 12154 return o; 12155 } 12156 }; 12157 12158 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 12159 struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> > { 12160 msgpack::object const& operator()( 12161 msgpack::object const& o, 12162 type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const { 12163 if(o.type != msgpack::type::ARRAY) { 12164 printf("throw msgpack::type_error()"); 12165 // throw msgpack::type_error(); 12166 } 12167 if(o.via.array.size < 32) { 12168 printf("throw msgpack::type_error()"); 12169 // throw msgpack::type_error(); 12170 } 12171 12172 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12173 o.via.array.ptr[0].msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>()); 12174 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12175 o.via.array.ptr[1].msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>()); 12176 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12177 o.via.array.ptr[2].msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>()); 12178 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12179 o.via.array.ptr[3].msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>()); 12180 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12181 o.via.array.ptr[4].msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>()); 12182 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12183 o.via.array.ptr[5].msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>()); 12184 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12185 o.via.array.ptr[6].msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>()); 12186 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12187 o.via.array.ptr[7].msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>()); 12188 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12189 o.via.array.ptr[8].msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>()); 12190 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12191 o.via.array.ptr[9].msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>()); 12192 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12193 o.via.array.ptr[10].msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>()); 12194 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12195 o.via.array.ptr[11].msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>()); 12196 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12197 o.via.array.ptr[12].msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>()); 12198 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12199 o.via.array.ptr[13].msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>()); 12200 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12201 o.via.array.ptr[14].msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>()); 12202 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12203 o.via.array.ptr[15].msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>()); 12204 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12205 o.via.array.ptr[16].msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>()); 12206 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12207 o.via.array.ptr[17].msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>()); 12208 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12209 o.via.array.ptr[18].msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>()); 12210 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12211 o.via.array.ptr[19].msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>()); 12212 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12213 o.via.array.ptr[20].msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>()); 12214 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12215 o.via.array.ptr[21].msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>()); 12216 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12217 o.via.array.ptr[22].msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>()); 12218 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12219 o.via.array.ptr[23].msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>()); 12220 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12221 o.via.array.ptr[24].msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>()); 12222 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12223 o.via.array.ptr[25].msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>()); 12224 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12225 o.via.array.ptr[26].msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>()); 12226 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12227 o.via.array.ptr[27].msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>()); 12228 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12229 o.via.array.ptr[28].msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>()); 12230 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12231 o.via.array.ptr[29].msgpack::object::convert<typename type::tuple_type<A29>::type>(v.template get<29>()); 12232 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12233 o.via.array.ptr[30].msgpack::object::convert<typename type::tuple_type<A30>::type>(v.template get<30>()); 12234 // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. 12235 o.via.array.ptr[31].msgpack::object::convert<typename type::tuple_type<A31>::type>(v.template get<31>()); 12236 return o; 12237 } 12238 }; 12239 12240 /// @endcond 12241 12242 template <> 12243 struct pack<type::tuple<> > { 12244 template <typename Stream> 12245 msgpack::packer<Stream> & operator()( 12246 msgpack::packer<Stream> & o, 12247 const type::tuple<>&) const { 12248 o.pack_array(0); 12249 return o; 12250 } 12251 }; 12252 12253 /// @cond 12254 12255 template <typename A0> 12256 struct pack<type::tuple<A0> > { 12257 template <typename Stream> 12258 msgpack::packer<Stream> & operator()( 12259 msgpack::packer<Stream> & o, 12260 const type::tuple<A0>& v) const { 12261 o.pack_array(1); 12262 12263 o.pack(v.template get<0>()); 12264 return o; 12265 } 12266 }; 12267 12268 template <typename A0, typename A1> 12269 struct pack<type::tuple<A0, A1> > { 12270 template <typename Stream> 12271 msgpack::packer<Stream> & operator()( 12272 msgpack::packer<Stream> & o, 12273 const type::tuple<A0, A1>& v) const { 12274 o.pack_array(2); 12275 12276 o.pack(v.template get<0>()); 12277 o.pack(v.template get<1>()); 12278 return o; 12279 } 12280 }; 12281 12282 template <typename A0, typename A1, typename A2> 12283 struct pack<type::tuple<A0, A1, A2> > { 12284 template <typename Stream> 12285 msgpack::packer<Stream> & operator()( 12286 msgpack::packer<Stream> & o, 12287 const type::tuple<A0, A1, A2>& v) const { 12288 o.pack_array(3); 12289 12290 o.pack(v.template get<0>()); 12291 o.pack(v.template get<1>()); 12292 o.pack(v.template get<2>()); 12293 return o; 12294 } 12295 }; 12296 12297 template <typename A0, typename A1, typename A2, typename A3> 12298 struct pack<type::tuple<A0, A1, A2, A3> > { 12299 template <typename Stream> 12300 msgpack::packer<Stream> & operator()( 12301 msgpack::packer<Stream> & o, 12302 const type::tuple<A0, A1, A2, A3>& v) const { 12303 o.pack_array(4); 12304 12305 o.pack(v.template get<0>()); 12306 o.pack(v.template get<1>()); 12307 o.pack(v.template get<2>()); 12308 o.pack(v.template get<3>()); 12309 return o; 12310 } 12311 }; 12312 12313 template <typename A0, typename A1, typename A2, typename A3, typename A4> 12314 struct pack<type::tuple<A0, A1, A2, A3, A4> > { 12315 template <typename Stream> 12316 msgpack::packer<Stream> & operator()( 12317 msgpack::packer<Stream> & o, 12318 const type::tuple<A0, A1, A2, A3, A4>& v) const { 12319 o.pack_array(5); 12320 12321 o.pack(v.template get<0>()); 12322 o.pack(v.template get<1>()); 12323 o.pack(v.template get<2>()); 12324 o.pack(v.template get<3>()); 12325 o.pack(v.template get<4>()); 12326 return o; 12327 } 12328 }; 12329 12330 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 12331 struct pack<type::tuple<A0, A1, A2, A3, A4, A5> > { 12332 template <typename Stream> 12333 msgpack::packer<Stream> & operator()( 12334 msgpack::packer<Stream> & o, 12335 const type::tuple<A0, A1, A2, A3, A4, A5>& v) const { 12336 o.pack_array(6); 12337 12338 o.pack(v.template get<0>()); 12339 o.pack(v.template get<1>()); 12340 o.pack(v.template get<2>()); 12341 o.pack(v.template get<3>()); 12342 o.pack(v.template get<4>()); 12343 o.pack(v.template get<5>()); 12344 return o; 12345 } 12346 }; 12347 12348 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 12349 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6> > { 12350 template <typename Stream> 12351 msgpack::packer<Stream> & operator()( 12352 msgpack::packer<Stream> & o, 12353 const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const { 12354 o.pack_array(7); 12355 12356 o.pack(v.template get<0>()); 12357 o.pack(v.template get<1>()); 12358 o.pack(v.template get<2>()); 12359 o.pack(v.template get<3>()); 12360 o.pack(v.template get<4>()); 12361 o.pack(v.template get<5>()); 12362 o.pack(v.template get<6>()); 12363 return o; 12364 } 12365 }; 12366 12367 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 12368 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> > { 12369 template <typename Stream> 12370 msgpack::packer<Stream> & operator()( 12371 msgpack::packer<Stream> & o, 12372 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const { 12373 o.pack_array(8); 12374 12375 o.pack(v.template get<0>()); 12376 o.pack(v.template get<1>()); 12377 o.pack(v.template get<2>()); 12378 o.pack(v.template get<3>()); 12379 o.pack(v.template get<4>()); 12380 o.pack(v.template get<5>()); 12381 o.pack(v.template get<6>()); 12382 o.pack(v.template get<7>()); 12383 return o; 12384 } 12385 }; 12386 12387 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 12388 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> > { 12389 template <typename Stream> 12390 msgpack::packer<Stream> & operator()( 12391 msgpack::packer<Stream> & o, 12392 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const { 12393 o.pack_array(9); 12394 12395 o.pack(v.template get<0>()); 12396 o.pack(v.template get<1>()); 12397 o.pack(v.template get<2>()); 12398 o.pack(v.template get<3>()); 12399 o.pack(v.template get<4>()); 12400 o.pack(v.template get<5>()); 12401 o.pack(v.template get<6>()); 12402 o.pack(v.template get<7>()); 12403 o.pack(v.template get<8>()); 12404 return o; 12405 } 12406 }; 12407 12408 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 12409 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> > { 12410 template <typename Stream> 12411 msgpack::packer<Stream> & operator()( 12412 msgpack::packer<Stream> & o, 12413 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const { 12414 o.pack_array(10); 12415 12416 o.pack(v.template get<0>()); 12417 o.pack(v.template get<1>()); 12418 o.pack(v.template get<2>()); 12419 o.pack(v.template get<3>()); 12420 o.pack(v.template get<4>()); 12421 o.pack(v.template get<5>()); 12422 o.pack(v.template get<6>()); 12423 o.pack(v.template get<7>()); 12424 o.pack(v.template get<8>()); 12425 o.pack(v.template get<9>()); 12426 return o; 12427 } 12428 }; 12429 12430 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 12431 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> > { 12432 template <typename Stream> 12433 msgpack::packer<Stream> & operator()( 12434 msgpack::packer<Stream> & o, 12435 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const { 12436 o.pack_array(11); 12437 12438 o.pack(v.template get<0>()); 12439 o.pack(v.template get<1>()); 12440 o.pack(v.template get<2>()); 12441 o.pack(v.template get<3>()); 12442 o.pack(v.template get<4>()); 12443 o.pack(v.template get<5>()); 12444 o.pack(v.template get<6>()); 12445 o.pack(v.template get<7>()); 12446 o.pack(v.template get<8>()); 12447 o.pack(v.template get<9>()); 12448 o.pack(v.template get<10>()); 12449 return o; 12450 } 12451 }; 12452 12453 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 12454 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> > { 12455 template <typename Stream> 12456 msgpack::packer<Stream> & operator()( 12457 msgpack::packer<Stream> & o, 12458 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const { 12459 o.pack_array(12); 12460 12461 o.pack(v.template get<0>()); 12462 o.pack(v.template get<1>()); 12463 o.pack(v.template get<2>()); 12464 o.pack(v.template get<3>()); 12465 o.pack(v.template get<4>()); 12466 o.pack(v.template get<5>()); 12467 o.pack(v.template get<6>()); 12468 o.pack(v.template get<7>()); 12469 o.pack(v.template get<8>()); 12470 o.pack(v.template get<9>()); 12471 o.pack(v.template get<10>()); 12472 o.pack(v.template get<11>()); 12473 return o; 12474 } 12475 }; 12476 12477 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 12478 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> > { 12479 template <typename Stream> 12480 msgpack::packer<Stream> & operator()( 12481 msgpack::packer<Stream> & o, 12482 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const { 12483 o.pack_array(13); 12484 12485 o.pack(v.template get<0>()); 12486 o.pack(v.template get<1>()); 12487 o.pack(v.template get<2>()); 12488 o.pack(v.template get<3>()); 12489 o.pack(v.template get<4>()); 12490 o.pack(v.template get<5>()); 12491 o.pack(v.template get<6>()); 12492 o.pack(v.template get<7>()); 12493 o.pack(v.template get<8>()); 12494 o.pack(v.template get<9>()); 12495 o.pack(v.template get<10>()); 12496 o.pack(v.template get<11>()); 12497 o.pack(v.template get<12>()); 12498 return o; 12499 } 12500 }; 12501 12502 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 12503 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> > { 12504 template <typename Stream> 12505 msgpack::packer<Stream> & operator()( 12506 msgpack::packer<Stream> & o, 12507 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const { 12508 o.pack_array(14); 12509 12510 o.pack(v.template get<0>()); 12511 o.pack(v.template get<1>()); 12512 o.pack(v.template get<2>()); 12513 o.pack(v.template get<3>()); 12514 o.pack(v.template get<4>()); 12515 o.pack(v.template get<5>()); 12516 o.pack(v.template get<6>()); 12517 o.pack(v.template get<7>()); 12518 o.pack(v.template get<8>()); 12519 o.pack(v.template get<9>()); 12520 o.pack(v.template get<10>()); 12521 o.pack(v.template get<11>()); 12522 o.pack(v.template get<12>()); 12523 o.pack(v.template get<13>()); 12524 return o; 12525 } 12526 }; 12527 12528 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 12529 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> > { 12530 template <typename Stream> 12531 msgpack::packer<Stream> & operator()( 12532 msgpack::packer<Stream> & o, 12533 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const { 12534 o.pack_array(15); 12535 12536 o.pack(v.template get<0>()); 12537 o.pack(v.template get<1>()); 12538 o.pack(v.template get<2>()); 12539 o.pack(v.template get<3>()); 12540 o.pack(v.template get<4>()); 12541 o.pack(v.template get<5>()); 12542 o.pack(v.template get<6>()); 12543 o.pack(v.template get<7>()); 12544 o.pack(v.template get<8>()); 12545 o.pack(v.template get<9>()); 12546 o.pack(v.template get<10>()); 12547 o.pack(v.template get<11>()); 12548 o.pack(v.template get<12>()); 12549 o.pack(v.template get<13>()); 12550 o.pack(v.template get<14>()); 12551 return o; 12552 } 12553 }; 12554 12555 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 12556 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> > { 12557 template <typename Stream> 12558 msgpack::packer<Stream> & operator()( 12559 msgpack::packer<Stream> & o, 12560 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const { 12561 o.pack_array(16); 12562 12563 o.pack(v.template get<0>()); 12564 o.pack(v.template get<1>()); 12565 o.pack(v.template get<2>()); 12566 o.pack(v.template get<3>()); 12567 o.pack(v.template get<4>()); 12568 o.pack(v.template get<5>()); 12569 o.pack(v.template get<6>()); 12570 o.pack(v.template get<7>()); 12571 o.pack(v.template get<8>()); 12572 o.pack(v.template get<9>()); 12573 o.pack(v.template get<10>()); 12574 o.pack(v.template get<11>()); 12575 o.pack(v.template get<12>()); 12576 o.pack(v.template get<13>()); 12577 o.pack(v.template get<14>()); 12578 o.pack(v.template get<15>()); 12579 return o; 12580 } 12581 }; 12582 12583 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 12584 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> > { 12585 template <typename Stream> 12586 msgpack::packer<Stream> & operator()( 12587 msgpack::packer<Stream> & o, 12588 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const { 12589 o.pack_array(17); 12590 12591 o.pack(v.template get<0>()); 12592 o.pack(v.template get<1>()); 12593 o.pack(v.template get<2>()); 12594 o.pack(v.template get<3>()); 12595 o.pack(v.template get<4>()); 12596 o.pack(v.template get<5>()); 12597 o.pack(v.template get<6>()); 12598 o.pack(v.template get<7>()); 12599 o.pack(v.template get<8>()); 12600 o.pack(v.template get<9>()); 12601 o.pack(v.template get<10>()); 12602 o.pack(v.template get<11>()); 12603 o.pack(v.template get<12>()); 12604 o.pack(v.template get<13>()); 12605 o.pack(v.template get<14>()); 12606 o.pack(v.template get<15>()); 12607 o.pack(v.template get<16>()); 12608 return o; 12609 } 12610 }; 12611 12612 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 12613 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> > { 12614 template <typename Stream> 12615 msgpack::packer<Stream> & operator()( 12616 msgpack::packer<Stream> & o, 12617 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const { 12618 o.pack_array(18); 12619 12620 o.pack(v.template get<0>()); 12621 o.pack(v.template get<1>()); 12622 o.pack(v.template get<2>()); 12623 o.pack(v.template get<3>()); 12624 o.pack(v.template get<4>()); 12625 o.pack(v.template get<5>()); 12626 o.pack(v.template get<6>()); 12627 o.pack(v.template get<7>()); 12628 o.pack(v.template get<8>()); 12629 o.pack(v.template get<9>()); 12630 o.pack(v.template get<10>()); 12631 o.pack(v.template get<11>()); 12632 o.pack(v.template get<12>()); 12633 o.pack(v.template get<13>()); 12634 o.pack(v.template get<14>()); 12635 o.pack(v.template get<15>()); 12636 o.pack(v.template get<16>()); 12637 o.pack(v.template get<17>()); 12638 return o; 12639 } 12640 }; 12641 12642 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 12643 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> > { 12644 template <typename Stream> 12645 msgpack::packer<Stream> & operator()( 12646 msgpack::packer<Stream> & o, 12647 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const { 12648 o.pack_array(19); 12649 12650 o.pack(v.template get<0>()); 12651 o.pack(v.template get<1>()); 12652 o.pack(v.template get<2>()); 12653 o.pack(v.template get<3>()); 12654 o.pack(v.template get<4>()); 12655 o.pack(v.template get<5>()); 12656 o.pack(v.template get<6>()); 12657 o.pack(v.template get<7>()); 12658 o.pack(v.template get<8>()); 12659 o.pack(v.template get<9>()); 12660 o.pack(v.template get<10>()); 12661 o.pack(v.template get<11>()); 12662 o.pack(v.template get<12>()); 12663 o.pack(v.template get<13>()); 12664 o.pack(v.template get<14>()); 12665 o.pack(v.template get<15>()); 12666 o.pack(v.template get<16>()); 12667 o.pack(v.template get<17>()); 12668 o.pack(v.template get<18>()); 12669 return o; 12670 } 12671 }; 12672 12673 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 12674 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> > { 12675 template <typename Stream> 12676 msgpack::packer<Stream> & operator()( 12677 msgpack::packer<Stream> & o, 12678 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const { 12679 o.pack_array(20); 12680 12681 o.pack(v.template get<0>()); 12682 o.pack(v.template get<1>()); 12683 o.pack(v.template get<2>()); 12684 o.pack(v.template get<3>()); 12685 o.pack(v.template get<4>()); 12686 o.pack(v.template get<5>()); 12687 o.pack(v.template get<6>()); 12688 o.pack(v.template get<7>()); 12689 o.pack(v.template get<8>()); 12690 o.pack(v.template get<9>()); 12691 o.pack(v.template get<10>()); 12692 o.pack(v.template get<11>()); 12693 o.pack(v.template get<12>()); 12694 o.pack(v.template get<13>()); 12695 o.pack(v.template get<14>()); 12696 o.pack(v.template get<15>()); 12697 o.pack(v.template get<16>()); 12698 o.pack(v.template get<17>()); 12699 o.pack(v.template get<18>()); 12700 o.pack(v.template get<19>()); 12701 return o; 12702 } 12703 }; 12704 12705 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 12706 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> > { 12707 template <typename Stream> 12708 msgpack::packer<Stream> & operator()( 12709 msgpack::packer<Stream> & o, 12710 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const { 12711 o.pack_array(21); 12712 12713 o.pack(v.template get<0>()); 12714 o.pack(v.template get<1>()); 12715 o.pack(v.template get<2>()); 12716 o.pack(v.template get<3>()); 12717 o.pack(v.template get<4>()); 12718 o.pack(v.template get<5>()); 12719 o.pack(v.template get<6>()); 12720 o.pack(v.template get<7>()); 12721 o.pack(v.template get<8>()); 12722 o.pack(v.template get<9>()); 12723 o.pack(v.template get<10>()); 12724 o.pack(v.template get<11>()); 12725 o.pack(v.template get<12>()); 12726 o.pack(v.template get<13>()); 12727 o.pack(v.template get<14>()); 12728 o.pack(v.template get<15>()); 12729 o.pack(v.template get<16>()); 12730 o.pack(v.template get<17>()); 12731 o.pack(v.template get<18>()); 12732 o.pack(v.template get<19>()); 12733 o.pack(v.template get<20>()); 12734 return o; 12735 } 12736 }; 12737 12738 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 12739 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> > { 12740 template <typename Stream> 12741 msgpack::packer<Stream> & operator()( 12742 msgpack::packer<Stream> & o, 12743 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const { 12744 o.pack_array(22); 12745 12746 o.pack(v.template get<0>()); 12747 o.pack(v.template get<1>()); 12748 o.pack(v.template get<2>()); 12749 o.pack(v.template get<3>()); 12750 o.pack(v.template get<4>()); 12751 o.pack(v.template get<5>()); 12752 o.pack(v.template get<6>()); 12753 o.pack(v.template get<7>()); 12754 o.pack(v.template get<8>()); 12755 o.pack(v.template get<9>()); 12756 o.pack(v.template get<10>()); 12757 o.pack(v.template get<11>()); 12758 o.pack(v.template get<12>()); 12759 o.pack(v.template get<13>()); 12760 o.pack(v.template get<14>()); 12761 o.pack(v.template get<15>()); 12762 o.pack(v.template get<16>()); 12763 o.pack(v.template get<17>()); 12764 o.pack(v.template get<18>()); 12765 o.pack(v.template get<19>()); 12766 o.pack(v.template get<20>()); 12767 o.pack(v.template get<21>()); 12768 return o; 12769 } 12770 }; 12771 12772 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 12773 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> > { 12774 template <typename Stream> 12775 msgpack::packer<Stream> & operator()( 12776 msgpack::packer<Stream> & o, 12777 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const { 12778 o.pack_array(23); 12779 12780 o.pack(v.template get<0>()); 12781 o.pack(v.template get<1>()); 12782 o.pack(v.template get<2>()); 12783 o.pack(v.template get<3>()); 12784 o.pack(v.template get<4>()); 12785 o.pack(v.template get<5>()); 12786 o.pack(v.template get<6>()); 12787 o.pack(v.template get<7>()); 12788 o.pack(v.template get<8>()); 12789 o.pack(v.template get<9>()); 12790 o.pack(v.template get<10>()); 12791 o.pack(v.template get<11>()); 12792 o.pack(v.template get<12>()); 12793 o.pack(v.template get<13>()); 12794 o.pack(v.template get<14>()); 12795 o.pack(v.template get<15>()); 12796 o.pack(v.template get<16>()); 12797 o.pack(v.template get<17>()); 12798 o.pack(v.template get<18>()); 12799 o.pack(v.template get<19>()); 12800 o.pack(v.template get<20>()); 12801 o.pack(v.template get<21>()); 12802 o.pack(v.template get<22>()); 12803 return o; 12804 } 12805 }; 12806 12807 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 12808 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> > { 12809 template <typename Stream> 12810 msgpack::packer<Stream> & operator()( 12811 msgpack::packer<Stream> & o, 12812 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const { 12813 o.pack_array(24); 12814 12815 o.pack(v.template get<0>()); 12816 o.pack(v.template get<1>()); 12817 o.pack(v.template get<2>()); 12818 o.pack(v.template get<3>()); 12819 o.pack(v.template get<4>()); 12820 o.pack(v.template get<5>()); 12821 o.pack(v.template get<6>()); 12822 o.pack(v.template get<7>()); 12823 o.pack(v.template get<8>()); 12824 o.pack(v.template get<9>()); 12825 o.pack(v.template get<10>()); 12826 o.pack(v.template get<11>()); 12827 o.pack(v.template get<12>()); 12828 o.pack(v.template get<13>()); 12829 o.pack(v.template get<14>()); 12830 o.pack(v.template get<15>()); 12831 o.pack(v.template get<16>()); 12832 o.pack(v.template get<17>()); 12833 o.pack(v.template get<18>()); 12834 o.pack(v.template get<19>()); 12835 o.pack(v.template get<20>()); 12836 o.pack(v.template get<21>()); 12837 o.pack(v.template get<22>()); 12838 o.pack(v.template get<23>()); 12839 return o; 12840 } 12841 }; 12842 12843 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 12844 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> > { 12845 template <typename Stream> 12846 msgpack::packer<Stream> & operator()( 12847 msgpack::packer<Stream> & o, 12848 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const { 12849 o.pack_array(25); 12850 12851 o.pack(v.template get<0>()); 12852 o.pack(v.template get<1>()); 12853 o.pack(v.template get<2>()); 12854 o.pack(v.template get<3>()); 12855 o.pack(v.template get<4>()); 12856 o.pack(v.template get<5>()); 12857 o.pack(v.template get<6>()); 12858 o.pack(v.template get<7>()); 12859 o.pack(v.template get<8>()); 12860 o.pack(v.template get<9>()); 12861 o.pack(v.template get<10>()); 12862 o.pack(v.template get<11>()); 12863 o.pack(v.template get<12>()); 12864 o.pack(v.template get<13>()); 12865 o.pack(v.template get<14>()); 12866 o.pack(v.template get<15>()); 12867 o.pack(v.template get<16>()); 12868 o.pack(v.template get<17>()); 12869 o.pack(v.template get<18>()); 12870 o.pack(v.template get<19>()); 12871 o.pack(v.template get<20>()); 12872 o.pack(v.template get<21>()); 12873 o.pack(v.template get<22>()); 12874 o.pack(v.template get<23>()); 12875 o.pack(v.template get<24>()); 12876 return o; 12877 } 12878 }; 12879 12880 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 12881 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> > { 12882 template <typename Stream> 12883 msgpack::packer<Stream> & operator()( 12884 msgpack::packer<Stream> & o, 12885 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const { 12886 o.pack_array(26); 12887 12888 o.pack(v.template get<0>()); 12889 o.pack(v.template get<1>()); 12890 o.pack(v.template get<2>()); 12891 o.pack(v.template get<3>()); 12892 o.pack(v.template get<4>()); 12893 o.pack(v.template get<5>()); 12894 o.pack(v.template get<6>()); 12895 o.pack(v.template get<7>()); 12896 o.pack(v.template get<8>()); 12897 o.pack(v.template get<9>()); 12898 o.pack(v.template get<10>()); 12899 o.pack(v.template get<11>()); 12900 o.pack(v.template get<12>()); 12901 o.pack(v.template get<13>()); 12902 o.pack(v.template get<14>()); 12903 o.pack(v.template get<15>()); 12904 o.pack(v.template get<16>()); 12905 o.pack(v.template get<17>()); 12906 o.pack(v.template get<18>()); 12907 o.pack(v.template get<19>()); 12908 o.pack(v.template get<20>()); 12909 o.pack(v.template get<21>()); 12910 o.pack(v.template get<22>()); 12911 o.pack(v.template get<23>()); 12912 o.pack(v.template get<24>()); 12913 o.pack(v.template get<25>()); 12914 return o; 12915 } 12916 }; 12917 12918 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 12919 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> > { 12920 template <typename Stream> 12921 msgpack::packer<Stream> & operator()( 12922 msgpack::packer<Stream> & o, 12923 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const { 12924 o.pack_array(27); 12925 12926 o.pack(v.template get<0>()); 12927 o.pack(v.template get<1>()); 12928 o.pack(v.template get<2>()); 12929 o.pack(v.template get<3>()); 12930 o.pack(v.template get<4>()); 12931 o.pack(v.template get<5>()); 12932 o.pack(v.template get<6>()); 12933 o.pack(v.template get<7>()); 12934 o.pack(v.template get<8>()); 12935 o.pack(v.template get<9>()); 12936 o.pack(v.template get<10>()); 12937 o.pack(v.template get<11>()); 12938 o.pack(v.template get<12>()); 12939 o.pack(v.template get<13>()); 12940 o.pack(v.template get<14>()); 12941 o.pack(v.template get<15>()); 12942 o.pack(v.template get<16>()); 12943 o.pack(v.template get<17>()); 12944 o.pack(v.template get<18>()); 12945 o.pack(v.template get<19>()); 12946 o.pack(v.template get<20>()); 12947 o.pack(v.template get<21>()); 12948 o.pack(v.template get<22>()); 12949 o.pack(v.template get<23>()); 12950 o.pack(v.template get<24>()); 12951 o.pack(v.template get<25>()); 12952 o.pack(v.template get<26>()); 12953 return o; 12954 } 12955 }; 12956 12957 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 12958 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> > { 12959 template <typename Stream> 12960 msgpack::packer<Stream> & operator()( 12961 msgpack::packer<Stream> & o, 12962 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const { 12963 o.pack_array(28); 12964 12965 o.pack(v.template get<0>()); 12966 o.pack(v.template get<1>()); 12967 o.pack(v.template get<2>()); 12968 o.pack(v.template get<3>()); 12969 o.pack(v.template get<4>()); 12970 o.pack(v.template get<5>()); 12971 o.pack(v.template get<6>()); 12972 o.pack(v.template get<7>()); 12973 o.pack(v.template get<8>()); 12974 o.pack(v.template get<9>()); 12975 o.pack(v.template get<10>()); 12976 o.pack(v.template get<11>()); 12977 o.pack(v.template get<12>()); 12978 o.pack(v.template get<13>()); 12979 o.pack(v.template get<14>()); 12980 o.pack(v.template get<15>()); 12981 o.pack(v.template get<16>()); 12982 o.pack(v.template get<17>()); 12983 o.pack(v.template get<18>()); 12984 o.pack(v.template get<19>()); 12985 o.pack(v.template get<20>()); 12986 o.pack(v.template get<21>()); 12987 o.pack(v.template get<22>()); 12988 o.pack(v.template get<23>()); 12989 o.pack(v.template get<24>()); 12990 o.pack(v.template get<25>()); 12991 o.pack(v.template get<26>()); 12992 o.pack(v.template get<27>()); 12993 return o; 12994 } 12995 }; 12996 12997 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 12998 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> > { 12999 template <typename Stream> 13000 msgpack::packer<Stream> & operator()( 13001 msgpack::packer<Stream> & o, 13002 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const { 13003 o.pack_array(29); 13004 13005 o.pack(v.template get<0>()); 13006 o.pack(v.template get<1>()); 13007 o.pack(v.template get<2>()); 13008 o.pack(v.template get<3>()); 13009 o.pack(v.template get<4>()); 13010 o.pack(v.template get<5>()); 13011 o.pack(v.template get<6>()); 13012 o.pack(v.template get<7>()); 13013 o.pack(v.template get<8>()); 13014 o.pack(v.template get<9>()); 13015 o.pack(v.template get<10>()); 13016 o.pack(v.template get<11>()); 13017 o.pack(v.template get<12>()); 13018 o.pack(v.template get<13>()); 13019 o.pack(v.template get<14>()); 13020 o.pack(v.template get<15>()); 13021 o.pack(v.template get<16>()); 13022 o.pack(v.template get<17>()); 13023 o.pack(v.template get<18>()); 13024 o.pack(v.template get<19>()); 13025 o.pack(v.template get<20>()); 13026 o.pack(v.template get<21>()); 13027 o.pack(v.template get<22>()); 13028 o.pack(v.template get<23>()); 13029 o.pack(v.template get<24>()); 13030 o.pack(v.template get<25>()); 13031 o.pack(v.template get<26>()); 13032 o.pack(v.template get<27>()); 13033 o.pack(v.template get<28>()); 13034 return o; 13035 } 13036 }; 13037 13038 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 13039 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> > { 13040 template <typename Stream> 13041 msgpack::packer<Stream> & operator()( 13042 msgpack::packer<Stream> & o, 13043 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const { 13044 o.pack_array(30); 13045 13046 o.pack(v.template get<0>()); 13047 o.pack(v.template get<1>()); 13048 o.pack(v.template get<2>()); 13049 o.pack(v.template get<3>()); 13050 o.pack(v.template get<4>()); 13051 o.pack(v.template get<5>()); 13052 o.pack(v.template get<6>()); 13053 o.pack(v.template get<7>()); 13054 o.pack(v.template get<8>()); 13055 o.pack(v.template get<9>()); 13056 o.pack(v.template get<10>()); 13057 o.pack(v.template get<11>()); 13058 o.pack(v.template get<12>()); 13059 o.pack(v.template get<13>()); 13060 o.pack(v.template get<14>()); 13061 o.pack(v.template get<15>()); 13062 o.pack(v.template get<16>()); 13063 o.pack(v.template get<17>()); 13064 o.pack(v.template get<18>()); 13065 o.pack(v.template get<19>()); 13066 o.pack(v.template get<20>()); 13067 o.pack(v.template get<21>()); 13068 o.pack(v.template get<22>()); 13069 o.pack(v.template get<23>()); 13070 o.pack(v.template get<24>()); 13071 o.pack(v.template get<25>()); 13072 o.pack(v.template get<26>()); 13073 o.pack(v.template get<27>()); 13074 o.pack(v.template get<28>()); 13075 o.pack(v.template get<29>()); 13076 return o; 13077 } 13078 }; 13079 13080 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 13081 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> > { 13082 template <typename Stream> 13083 msgpack::packer<Stream> & operator()( 13084 msgpack::packer<Stream> & o, 13085 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const { 13086 o.pack_array(31); 13087 13088 o.pack(v.template get<0>()); 13089 o.pack(v.template get<1>()); 13090 o.pack(v.template get<2>()); 13091 o.pack(v.template get<3>()); 13092 o.pack(v.template get<4>()); 13093 o.pack(v.template get<5>()); 13094 o.pack(v.template get<6>()); 13095 o.pack(v.template get<7>()); 13096 o.pack(v.template get<8>()); 13097 o.pack(v.template get<9>()); 13098 o.pack(v.template get<10>()); 13099 o.pack(v.template get<11>()); 13100 o.pack(v.template get<12>()); 13101 o.pack(v.template get<13>()); 13102 o.pack(v.template get<14>()); 13103 o.pack(v.template get<15>()); 13104 o.pack(v.template get<16>()); 13105 o.pack(v.template get<17>()); 13106 o.pack(v.template get<18>()); 13107 o.pack(v.template get<19>()); 13108 o.pack(v.template get<20>()); 13109 o.pack(v.template get<21>()); 13110 o.pack(v.template get<22>()); 13111 o.pack(v.template get<23>()); 13112 o.pack(v.template get<24>()); 13113 o.pack(v.template get<25>()); 13114 o.pack(v.template get<26>()); 13115 o.pack(v.template get<27>()); 13116 o.pack(v.template get<28>()); 13117 o.pack(v.template get<29>()); 13118 o.pack(v.template get<30>()); 13119 return o; 13120 } 13121 }; 13122 13123 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 13124 struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> > { 13125 template <typename Stream> 13126 msgpack::packer<Stream> & operator()( 13127 msgpack::packer<Stream> & o, 13128 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const { 13129 o.pack_array(32); 13130 13131 o.pack(v.template get<0>()); 13132 o.pack(v.template get<1>()); 13133 o.pack(v.template get<2>()); 13134 o.pack(v.template get<3>()); 13135 o.pack(v.template get<4>()); 13136 o.pack(v.template get<5>()); 13137 o.pack(v.template get<6>()); 13138 o.pack(v.template get<7>()); 13139 o.pack(v.template get<8>()); 13140 o.pack(v.template get<9>()); 13141 o.pack(v.template get<10>()); 13142 o.pack(v.template get<11>()); 13143 o.pack(v.template get<12>()); 13144 o.pack(v.template get<13>()); 13145 o.pack(v.template get<14>()); 13146 o.pack(v.template get<15>()); 13147 o.pack(v.template get<16>()); 13148 o.pack(v.template get<17>()); 13149 o.pack(v.template get<18>()); 13150 o.pack(v.template get<19>()); 13151 o.pack(v.template get<20>()); 13152 o.pack(v.template get<21>()); 13153 o.pack(v.template get<22>()); 13154 o.pack(v.template get<23>()); 13155 o.pack(v.template get<24>()); 13156 o.pack(v.template get<25>()); 13157 o.pack(v.template get<26>()); 13158 o.pack(v.template get<27>()); 13159 o.pack(v.template get<28>()); 13160 o.pack(v.template get<29>()); 13161 o.pack(v.template get<30>()); 13162 o.pack(v.template get<31>()); 13163 return o; 13164 } 13165 }; 13166 13167 /// @endcond 13168 13169 template <> 13170 struct object_with_zone<type::tuple<> > { 13171 void operator()( 13172 msgpack::object::with_zone& o, 13173 const type::tuple<>&) const { 13174 o.type = msgpack::type::ARRAY; 13175 o.via.array.ptr = nullptr; 13176 o.via.array.size = 0; 13177 } 13178 }; 13179 13180 /// @cond 13181 13182 template <typename A0> 13183 struct object_with_zone<type::tuple<A0> > { 13184 void operator()( 13185 msgpack::object::with_zone& o, 13186 const type::tuple<A0>& v) const { 13187 o.type = msgpack::type::ARRAY; 13188 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*1)); 13189 o.via.array.size = 1; 13190 13191 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13192 } 13193 }; 13194 13195 template <typename A0, typename A1> 13196 struct object_with_zone<type::tuple<A0, A1> > { 13197 void operator()( 13198 msgpack::object::with_zone& o, 13199 const type::tuple<A0, A1>& v) const { 13200 o.type = msgpack::type::ARRAY; 13201 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*2)); 13202 o.via.array.size = 2; 13203 13204 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13205 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13206 } 13207 }; 13208 13209 template <typename A0, typename A1, typename A2> 13210 struct object_with_zone<type::tuple<A0, A1, A2> > { 13211 void operator()( 13212 msgpack::object::with_zone& o, 13213 const type::tuple<A0, A1, A2>& v) const { 13214 o.type = msgpack::type::ARRAY; 13215 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*3)); 13216 o.via.array.size = 3; 13217 13218 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13219 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13220 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13221 } 13222 }; 13223 13224 template <typename A0, typename A1, typename A2, typename A3> 13225 struct object_with_zone<type::tuple<A0, A1, A2, A3> > { 13226 void operator()( 13227 msgpack::object::with_zone& o, 13228 const type::tuple<A0, A1, A2, A3>& v) const { 13229 o.type = msgpack::type::ARRAY; 13230 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*4)); 13231 o.via.array.size = 4; 13232 13233 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13234 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13235 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13236 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13237 } 13238 }; 13239 13240 template <typename A0, typename A1, typename A2, typename A3, typename A4> 13241 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4> > { 13242 void operator()( 13243 msgpack::object::with_zone& o, 13244 const type::tuple<A0, A1, A2, A3, A4>& v) const { 13245 o.type = msgpack::type::ARRAY; 13246 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*5)); 13247 o.via.array.size = 5; 13248 13249 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13250 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13251 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13252 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13253 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13254 } 13255 }; 13256 13257 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5> 13258 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5> > { 13259 void operator()( 13260 msgpack::object::with_zone& o, 13261 const type::tuple<A0, A1, A2, A3, A4, A5>& v) const { 13262 o.type = msgpack::type::ARRAY; 13263 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*6)); 13264 o.via.array.size = 6; 13265 13266 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13267 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13268 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13269 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13270 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13271 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13272 } 13273 }; 13274 13275 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6> 13276 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6> > { 13277 void operator()( 13278 msgpack::object::with_zone& o, 13279 const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const { 13280 o.type = msgpack::type::ARRAY; 13281 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*7)); 13282 o.via.array.size = 7; 13283 13284 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13285 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13286 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13287 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13288 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13289 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13290 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13291 } 13292 }; 13293 13294 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7> 13295 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> > { 13296 void operator()( 13297 msgpack::object::with_zone& o, 13298 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const { 13299 o.type = msgpack::type::ARRAY; 13300 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*8)); 13301 o.via.array.size = 8; 13302 13303 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13304 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13305 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13306 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13307 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13308 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13309 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13310 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13311 } 13312 }; 13313 13314 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8> 13315 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> > { 13316 void operator()( 13317 msgpack::object::with_zone& o, 13318 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const { 13319 o.type = msgpack::type::ARRAY; 13320 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*9)); 13321 o.via.array.size = 9; 13322 13323 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13324 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13325 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13326 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13327 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13328 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13329 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13330 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13331 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13332 } 13333 }; 13334 13335 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9> 13336 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> > { 13337 void operator()( 13338 msgpack::object::with_zone& o, 13339 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const { 13340 o.type = msgpack::type::ARRAY; 13341 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*10)); 13342 o.via.array.size = 10; 13343 13344 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13345 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13346 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13347 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13348 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13349 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13350 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13351 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13352 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13353 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13354 } 13355 }; 13356 13357 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10> 13358 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> > { 13359 void operator()( 13360 msgpack::object::with_zone& o, 13361 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const { 13362 o.type = msgpack::type::ARRAY; 13363 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*11)); 13364 o.via.array.size = 11; 13365 13366 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13367 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13368 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13369 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13370 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13371 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13372 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13373 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13374 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13375 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13376 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13377 } 13378 }; 13379 13380 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11> 13381 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> > { 13382 void operator()( 13383 msgpack::object::with_zone& o, 13384 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const { 13385 o.type = msgpack::type::ARRAY; 13386 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*12)); 13387 o.via.array.size = 12; 13388 13389 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13390 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13391 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13392 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13393 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13394 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13395 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13396 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13397 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13398 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13399 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13400 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13401 } 13402 }; 13403 13404 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12> 13405 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> > { 13406 void operator()( 13407 msgpack::object::with_zone& o, 13408 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const { 13409 o.type = msgpack::type::ARRAY; 13410 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*13)); 13411 o.via.array.size = 13; 13412 13413 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13414 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13415 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13416 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13417 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13418 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13419 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13420 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13421 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13422 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13423 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13424 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13425 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13426 } 13427 }; 13428 13429 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13> 13430 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> > { 13431 void operator()( 13432 msgpack::object::with_zone& o, 13433 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const { 13434 o.type = msgpack::type::ARRAY; 13435 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*14)); 13436 o.via.array.size = 14; 13437 13438 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13439 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13440 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13441 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13442 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13443 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13444 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13445 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13446 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13447 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13448 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13449 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13450 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13451 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13452 } 13453 }; 13454 13455 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14> 13456 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> > { 13457 void operator()( 13458 msgpack::object::with_zone& o, 13459 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const { 13460 o.type = msgpack::type::ARRAY; 13461 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*15)); 13462 o.via.array.size = 15; 13463 13464 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13465 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13466 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13467 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13468 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13469 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13470 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13471 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13472 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13473 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13474 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13475 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13476 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13477 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13478 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13479 } 13480 }; 13481 13482 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15> 13483 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> > { 13484 void operator()( 13485 msgpack::object::with_zone& o, 13486 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const { 13487 o.type = msgpack::type::ARRAY; 13488 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*16)); 13489 o.via.array.size = 16; 13490 13491 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13492 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13493 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13494 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13495 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13496 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13497 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13498 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13499 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13500 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13501 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13502 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13503 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13504 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13505 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13506 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13507 } 13508 }; 13509 13510 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16> 13511 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> > { 13512 void operator()( 13513 msgpack::object::with_zone& o, 13514 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const { 13515 o.type = msgpack::type::ARRAY; 13516 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*17)); 13517 o.via.array.size = 17; 13518 13519 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13520 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13521 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13522 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13523 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13524 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13525 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13526 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13527 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13528 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13529 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13530 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13531 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13532 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13533 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13534 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13535 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13536 } 13537 }; 13538 13539 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17> 13540 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> > { 13541 void operator()( 13542 msgpack::object::with_zone& o, 13543 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const { 13544 o.type = msgpack::type::ARRAY; 13545 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*18)); 13546 o.via.array.size = 18; 13547 13548 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13549 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13550 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13551 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13552 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13553 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13554 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13555 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13556 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13557 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13558 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13559 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13560 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13561 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13562 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13563 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13564 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13565 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13566 } 13567 }; 13568 13569 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18> 13570 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> > { 13571 void operator()( 13572 msgpack::object::with_zone& o, 13573 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const { 13574 o.type = msgpack::type::ARRAY; 13575 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*19)); 13576 o.via.array.size = 19; 13577 13578 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13579 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13580 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13581 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13582 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13583 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13584 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13585 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13586 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13587 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13588 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13589 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13590 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13591 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13592 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13593 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13594 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13595 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13596 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13597 } 13598 }; 13599 13600 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19> 13601 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> > { 13602 void operator()( 13603 msgpack::object::with_zone& o, 13604 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const { 13605 o.type = msgpack::type::ARRAY; 13606 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*20)); 13607 o.via.array.size = 20; 13608 13609 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13610 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13611 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13612 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13613 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13614 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13615 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13616 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13617 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13618 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13619 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13620 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13621 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13622 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13623 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13624 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13625 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13626 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13627 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13628 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13629 } 13630 }; 13631 13632 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20> 13633 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> > { 13634 void operator()( 13635 msgpack::object::with_zone& o, 13636 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const { 13637 o.type = msgpack::type::ARRAY; 13638 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*21)); 13639 o.via.array.size = 21; 13640 13641 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13642 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13643 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13644 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13645 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13646 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13647 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13648 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13649 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13650 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13651 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13652 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13653 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13654 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13655 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13656 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13657 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13658 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13659 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13660 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13661 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13662 } 13663 }; 13664 13665 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21> 13666 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> > { 13667 void operator()( 13668 msgpack::object::with_zone& o, 13669 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const { 13670 o.type = msgpack::type::ARRAY; 13671 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*22)); 13672 o.via.array.size = 22; 13673 13674 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13675 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13676 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13677 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13678 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13679 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13680 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13681 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13682 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13683 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13684 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13685 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13686 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13687 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13688 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13689 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13690 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13691 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13692 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13693 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13694 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13695 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13696 } 13697 }; 13698 13699 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22> 13700 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> > { 13701 void operator()( 13702 msgpack::object::with_zone& o, 13703 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const { 13704 o.type = msgpack::type::ARRAY; 13705 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*23)); 13706 o.via.array.size = 23; 13707 13708 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13709 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13710 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13711 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13712 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13713 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13714 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13715 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13716 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13717 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13718 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13719 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13720 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13721 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13722 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13723 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13724 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13725 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13726 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13727 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13728 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13729 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13730 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13731 } 13732 }; 13733 13734 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23> 13735 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> > { 13736 void operator()( 13737 msgpack::object::with_zone& o, 13738 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const { 13739 o.type = msgpack::type::ARRAY; 13740 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*24)); 13741 o.via.array.size = 24; 13742 13743 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13744 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13745 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13746 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13747 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13748 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13749 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13750 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13751 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13752 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13753 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13754 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13755 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13756 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13757 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13758 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13759 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13760 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13761 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13762 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13763 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13764 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13765 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13766 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 13767 } 13768 }; 13769 13770 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24> 13771 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> > { 13772 void operator()( 13773 msgpack::object::with_zone& o, 13774 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const { 13775 o.type = msgpack::type::ARRAY; 13776 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*25)); 13777 o.via.array.size = 25; 13778 13779 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13780 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13781 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13782 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13783 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13784 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13785 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13786 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13787 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13788 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13789 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13790 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13791 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13792 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13793 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13794 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13795 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13796 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13797 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13798 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13799 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13800 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13801 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13802 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 13803 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 13804 } 13805 }; 13806 13807 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25> 13808 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> > { 13809 void operator()( 13810 msgpack::object::with_zone& o, 13811 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const { 13812 o.type = msgpack::type::ARRAY; 13813 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*26)); 13814 o.via.array.size = 26; 13815 13816 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13817 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13818 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13819 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13820 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13821 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13822 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13823 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13824 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13825 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13826 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13827 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13828 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13829 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13830 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13831 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13832 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13833 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13834 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13835 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13836 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13837 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13838 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13839 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 13840 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 13841 o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); 13842 } 13843 }; 13844 13845 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26> 13846 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> > { 13847 void operator()( 13848 msgpack::object::with_zone& o, 13849 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const { 13850 o.type = msgpack::type::ARRAY; 13851 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*27)); 13852 o.via.array.size = 27; 13853 13854 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13855 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13856 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13857 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13858 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13859 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13860 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13861 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13862 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13863 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13864 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13865 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13866 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13867 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13868 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13869 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13870 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13871 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13872 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13873 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13874 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13875 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13876 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13877 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 13878 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 13879 o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); 13880 o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); 13881 } 13882 }; 13883 13884 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27> 13885 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> > { 13886 void operator()( 13887 msgpack::object::with_zone& o, 13888 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const { 13889 o.type = msgpack::type::ARRAY; 13890 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*28)); 13891 o.via.array.size = 28; 13892 13893 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13894 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13895 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13896 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13897 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13898 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13899 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13900 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13901 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13902 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13903 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13904 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13905 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13906 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13907 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13908 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13909 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13910 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13911 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13912 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13913 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13914 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13915 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13916 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 13917 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 13918 o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); 13919 o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); 13920 o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); 13921 } 13922 }; 13923 13924 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28> 13925 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> > { 13926 void operator()( 13927 msgpack::object::with_zone& o, 13928 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const { 13929 o.type = msgpack::type::ARRAY; 13930 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*29)); 13931 o.via.array.size = 29; 13932 13933 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13934 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13935 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13936 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13937 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13938 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13939 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13940 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13941 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13942 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13943 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13944 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13945 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13946 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13947 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13948 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13949 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13950 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13951 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13952 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13953 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13954 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13955 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13956 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 13957 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 13958 o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); 13959 o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); 13960 o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); 13961 o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); 13962 } 13963 }; 13964 13965 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29> 13966 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> > { 13967 void operator()( 13968 msgpack::object::with_zone& o, 13969 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const { 13970 o.type = msgpack::type::ARRAY; 13971 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*30)); 13972 o.via.array.size = 30; 13973 13974 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 13975 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 13976 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 13977 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 13978 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 13979 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 13980 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 13981 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 13982 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 13983 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 13984 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 13985 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 13986 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 13987 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 13988 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 13989 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 13990 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 13991 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 13992 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 13993 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 13994 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 13995 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 13996 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 13997 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 13998 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 13999 o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); 14000 o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); 14001 o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); 14002 o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); 14003 o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); 14004 } 14005 }; 14006 14007 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30> 14008 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> > { 14009 void operator()( 14010 msgpack::object::with_zone& o, 14011 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const { 14012 o.type = msgpack::type::ARRAY; 14013 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*31)); 14014 o.via.array.size = 31; 14015 14016 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 14017 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 14018 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 14019 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 14020 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 14021 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 14022 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 14023 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 14024 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 14025 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 14026 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 14027 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 14028 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 14029 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 14030 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 14031 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 14032 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 14033 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 14034 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 14035 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 14036 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 14037 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 14038 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 14039 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 14040 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 14041 o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); 14042 o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); 14043 o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); 14044 o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); 14045 o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); 14046 o.via.array.ptr[30] = msgpack::object(v.template get<30>(), o.zone); 14047 } 14048 }; 14049 14050 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31> 14051 struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> > { 14052 void operator()( 14053 msgpack::object::with_zone& o, 14054 const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const { 14055 o.type = msgpack::type::ARRAY; 14056 o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*32)); 14057 o.via.array.size = 32; 14058 14059 o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); 14060 o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); 14061 o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); 14062 o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); 14063 o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); 14064 o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); 14065 o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); 14066 o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); 14067 o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); 14068 o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); 14069 o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); 14070 o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); 14071 o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); 14072 o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); 14073 o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); 14074 o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); 14075 o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); 14076 o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); 14077 o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); 14078 o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); 14079 o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); 14080 o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); 14081 o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); 14082 o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); 14083 o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); 14084 o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); 14085 o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); 14086 o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); 14087 o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); 14088 o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); 14089 o.via.array.ptr[30] = msgpack::object(v.template get<30>(), o.zone); 14090 o.via.array.ptr[31] = msgpack::object(v.template get<31>(), o.zone); 14091 } 14092 }; 14093 14094 /// @endcond 14095 14096 } // namespace adaptor 14097 14098 /// @cond 14099 } // MSGPACK_API_VERSION_NAMESPACE(v1) 14100 /// @endcond 14101 14102 } // namespace msgpack 14103 14104 #endif // MSGPACK_CPP03_MSGPACK_TUPLE_HPP 14105
Generated on Tue Jul 12 2022 22:51:45 by
1.7.2