// // MessagePack for C++ static resolution routine // // Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // #ifndef MSGPACK_V1_CPP03_MSGPACK_TUPLE_HPP #define MSGPACK_V1_CPP03_MSGPACK_TUPLE_HPP #include "msgpack/v1/adaptor/msgpack_tuple_decl.hpp" namespace msgpack { /// @cond MSGPACK_API_VERSION_NAMESPACE(v1) { /// @endcond namespace type { // FIXME operator== // FIXME operator!= template struct tuple_type { typedef T type; typedef T value_type; typedef T& reference; typedef const T& const_reference; typedef const T& transparent_reference; }; template struct tuple_type { typedef T type; typedef T& value_type; typedef T& reference; typedef const T& const_reference; typedef T& transparent_reference; }; template struct tuple_type { typedef T type; typedef T& value_type; typedef T& reference; typedef const T& const_reference; typedef const T& transparent_reference; }; /// @cond template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 25> : tuple_type { tuple_element(tuple& x) : m_x(x.a25) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 25> : tuple_type { tuple_element(tuple& x) : m_x(x.a25) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 26> : tuple_type { tuple_element(tuple& x) : m_x(x.a26) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 25> : tuple_type { tuple_element(tuple& x) : m_x(x.a25) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 26> : tuple_type { tuple_element(tuple& x) : m_x(x.a26) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 27> : tuple_type { tuple_element(tuple& x) : m_x(x.a27) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 25> : tuple_type { tuple_element(tuple& x) : m_x(x.a25) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 26> : tuple_type { tuple_element(tuple& x) : m_x(x.a26) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 27> : tuple_type { tuple_element(tuple& x) : m_x(x.a27) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 28> : tuple_type { tuple_element(tuple& x) : m_x(x.a28) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 25> : tuple_type { tuple_element(tuple& x) : m_x(x.a25) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 26> : tuple_type { tuple_element(tuple& x) : m_x(x.a26) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 27> : tuple_type { tuple_element(tuple& x) : m_x(x.a27) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 28> : tuple_type { tuple_element(tuple& x) : m_x(x.a28) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 29> : tuple_type { tuple_element(tuple& x) : m_x(x.a29) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 25> : tuple_type { tuple_element(tuple& x) : m_x(x.a25) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 26> : tuple_type { tuple_element(tuple& x) : m_x(x.a26) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 27> : tuple_type { tuple_element(tuple& x) : m_x(x.a27) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 28> : tuple_type { tuple_element(tuple& x) : m_x(x.a28) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 29> : tuple_type { tuple_element(tuple& x) : m_x(x.a29) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 30> : tuple_type { tuple_element(tuple& x) : m_x(x.a30) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 0> : tuple_type { tuple_element(tuple& x) : m_x(x.a0) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 1> : tuple_type { tuple_element(tuple& x) : m_x(x.a1) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 2> : tuple_type { tuple_element(tuple& x) : m_x(x.a2) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 3> : tuple_type { tuple_element(tuple& x) : m_x(x.a3) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 4> : tuple_type { tuple_element(tuple& x) : m_x(x.a4) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 5> : tuple_type { tuple_element(tuple& x) : m_x(x.a5) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 6> : tuple_type { tuple_element(tuple& x) : m_x(x.a6) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 7> : tuple_type { tuple_element(tuple& x) : m_x(x.a7) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 8> : tuple_type { tuple_element(tuple& x) : m_x(x.a8) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 9> : tuple_type { tuple_element(tuple& x) : m_x(x.a9) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 10> : tuple_type { tuple_element(tuple& x) : m_x(x.a10) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 11> : tuple_type { tuple_element(tuple& x) : m_x(x.a11) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 12> : tuple_type { tuple_element(tuple& x) : m_x(x.a12) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 13> : tuple_type { tuple_element(tuple& x) : m_x(x.a13) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 14> : tuple_type { tuple_element(tuple& x) : m_x(x.a14) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 15> : tuple_type { tuple_element(tuple& x) : m_x(x.a15) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 16> : tuple_type { tuple_element(tuple& x) : m_x(x.a16) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 17> : tuple_type { tuple_element(tuple& x) : m_x(x.a17) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 18> : tuple_type { tuple_element(tuple& x) : m_x(x.a18) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 19> : tuple_type { tuple_element(tuple& x) : m_x(x.a19) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 20> : tuple_type { tuple_element(tuple& x) : m_x(x.a20) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 21> : tuple_type { tuple_element(tuple& x) : m_x(x.a21) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 22> : tuple_type { tuple_element(tuple& x) : m_x(x.a22) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 23> : tuple_type { tuple_element(tuple& x) : m_x(x.a23) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 24> : tuple_type { tuple_element(tuple& x) : m_x(x.a24) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 25> : tuple_type { tuple_element(tuple& x) : m_x(x.a25) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 26> : tuple_type { tuple_element(tuple& x) : m_x(x.a26) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 27> : tuple_type { tuple_element(tuple& x) : m_x(x.a27) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 28> : tuple_type { tuple_element(tuple& x) : m_x(x.a28) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 29> : tuple_type { tuple_element(tuple& x) : m_x(x.a29) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 30> : tuple_type { tuple_element(tuple& x) : m_x(x.a30) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct tuple_element, 31> : tuple_type { tuple_element(tuple& x) : m_x(x.a31) {} typename tuple_type::reference get() { return m_x; } typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 25> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a25) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 25> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a25) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 26> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a26) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 25> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a25) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 26> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a26) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 27> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a27) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 25> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a25) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 26> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a26) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 27> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a27) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 28> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a28) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 25> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a25) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 26> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a26) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 27> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a27) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 28> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a28) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 29> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a29) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 25> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a25) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 26> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a26) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 27> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a27) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 28> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a28) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 29> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a29) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 30> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a30) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 0> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a0) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 1> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a1) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 2> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a2) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 3> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a3) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 4> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a4) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 5> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a5) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 6> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a6) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 7> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a7) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 8> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a8) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 9> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a9) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 10> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a10) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 11> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a11) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 12> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a12) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 13> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a13) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 14> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a14) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 15> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a15) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 16> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a16) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 17> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a17) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 18> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a18) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 19> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a19) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 20> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a20) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 21> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a21) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 22> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a22) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 23> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a23) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 24> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a24) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 25> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a25) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 26> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a26) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 27> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a27) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 28> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a28) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 29> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a29) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 30> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a30) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; template struct const_tuple_element, 31> : tuple_type { const_tuple_element(const tuple& x) : m_x(x.a31) {} typename tuple_type::const_reference get() const { return m_x; } private: typename tuple_type::const_reference m_x; }; /// @endcond template <> struct tuple<> { tuple() {} tuple(msgpack::object const& o) { o.convert(*this); } typedef tuple<> value_type; std::size_t size() const { return 0; } }; /// @cond template struct tuple { typedef tuple value_type; std::size_t size() const { return 1; } tuple() {} tuple(typename tuple_type::transparent_reference _a0) : a0(_a0) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 2; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1) : a0(_a0), a1(_a1) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 3; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2) : a0(_a0), a1(_a1), a2(_a2) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 4; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3) : a0(_a0), a1(_a1), a2(_a2), a3(_a3) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 5; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 6; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; A5 a5; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 7; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; A5 a5; A6 a6; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 8; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; A5 a5; A6 a6; A7 a7; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 9; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; A5 a5; A6 a6; A7 a7; A8 a8; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 10; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; A5 a5; A6 a6; A7 a7; A8 a8; A9 a9; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 11; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; A5 a5; A6 a6; A7 a7; A8 a8; A9 a9; A10 a10; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 12; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11) : a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } A0 a0; A1 a1; A2 a2; A3 a3; A4 a4; A5 a5; A6 a6; A7 a7; A8 a8; A9 a9; A10 a10; A11 a11; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 13; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 14; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 15; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 16; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 17; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 18; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 19; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 20; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 21; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 22; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 23; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 24; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 25; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 26; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 27; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 28; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 29; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 30; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28, typename tuple_type::transparent_reference _a29) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 31; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28, typename tuple_type::transparent_reference _a29, typename tuple_type::transparent_reference _a30) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } template struct tuple { typedef tuple value_type; std::size_t size() const { return 32; } tuple() {} tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28, typename tuple_type::transparent_reference _a29, typename tuple_type::transparent_reference _a30, typename tuple_type::transparent_reference _a31) : 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) {} tuple(msgpack::object const& o) { o.convert(*this); } template typename tuple_element::reference get() { return tuple_element(*this).get(); } template typename const_tuple_element::const_reference get() const { return const_tuple_element(*this).get(); } 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; }; template inline typename type::tuple_element, N>::reference get(type::tuple& t) { return t.template get(); } template inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) { return t.template get(); } /// @endcond inline tuple<> make_tuple() { return tuple<>(); } /// @cond template tuple make_tuple(A0 const& a0) { return tuple(a0); } template tuple make_tuple(A0 const& a0, A1 const& a1) { return tuple(a0, a1); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2) { return tuple(a0, a1, a2); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3) { return tuple(a0, a1, a2, a3); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4) { return tuple(a0, a1, a2, a3, a4); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5) { return tuple(a0, a1, a2, a3, a4, a5); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6) { return tuple(a0, a1, a2, a3, a4, a5, a6); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21) { return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24, A25 const& a25) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24, A25 const& a25, A26 const& a26) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24, A25 const& a25, A26 const& a26, A27 const& a27) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24, A25 const& a25, A26 const& a26, A27 const& a27, A28 const& a28) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24, A25 const& a25, A26 const& a26, A27 const& a27, A28 const& a28, A29 const& a29) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24, A25 const& a25, A26 const& a26, A27 const& a27, A28 const& a28, A29 const& a29, A30 const& a30) { 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); } template tuple make_tuple(A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, A8 const& a8, A9 const& a9, A10 const& a10, A11 const& a11, A12 const& a12, A13 const& a13, A14 const& a14, A15 const& a15, A16 const& a16, A17 const& a17, A18 const& a18, A19 const& a19, A20 const& a20, A21 const& a21, A22 const& a22, A23 const& a23, A24 const& a24, A25 const& a25, A26 const& a26, A27 const& a27, A28 const& a28, A29 const& a29, A30 const& a30, A31 const& a31) { 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); } /// @endcond } // namespace type namespace adaptor { template <> struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple<>&) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } return o; } }; /// @cond template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 25) o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 25) o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 26) o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 25) o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 26) o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 27) o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 25) o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 26) o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 27) o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 28) o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 25) o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 26) o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 27) o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 28) o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 29) o.via.array.ptr[29].msgpack::object::convert::type>(v.template get<29>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 25) o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 26) o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 27) o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 28) o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 29) o.via.array.ptr[29].msgpack::object::convert::type>(v.template get<29>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 30) o.via.array.ptr[30].msgpack::object::convert::type>(v.template get<30>()); return o; } }; template struct convert > { msgpack::object const& operator()( msgpack::object const& o, type::tuple& v) const { if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 0) o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 1) o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 2) o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 3) o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 4) o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 5) o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 6) o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 7) o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 8) o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 9) o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 10) o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 11) o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 12) o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 13) o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 14) o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 15) o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 16) o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 17) o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 18) o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 19) o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 20) o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 21) o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 22) o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 23) o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 24) o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 25) o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 26) o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 27) o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 28) o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 29) o.via.array.ptr[29].msgpack::object::convert::type>(v.template get<29>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 30) o.via.array.ptr[30].msgpack::object::convert::type>(v.template get<30>()); // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. if(o.via.array.size > 31) o.via.array.ptr[31].msgpack::object::convert::type>(v.template get<31>()); return o; } }; /// @endcond template <> struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple<>&) const { o.pack_array(0); return o; } }; /// @cond template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(1); o.pack(v.template get<0>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(2); o.pack(v.template get<0>()); o.pack(v.template get<1>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(3); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(4); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(5); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(6); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(7); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(8); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(9); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(10); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(11); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(12); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(13); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(14); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(15); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(16); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(17); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(18); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(19); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(20); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(21); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(22); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(23); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(24); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(25); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(26); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); o.pack(v.template get<25>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(27); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); o.pack(v.template get<25>()); o.pack(v.template get<26>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(28); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); o.pack(v.template get<25>()); o.pack(v.template get<26>()); o.pack(v.template get<27>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(29); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); o.pack(v.template get<25>()); o.pack(v.template get<26>()); o.pack(v.template get<27>()); o.pack(v.template get<28>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(30); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); o.pack(v.template get<25>()); o.pack(v.template get<26>()); o.pack(v.template get<27>()); o.pack(v.template get<28>()); o.pack(v.template get<29>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(31); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); o.pack(v.template get<25>()); o.pack(v.template get<26>()); o.pack(v.template get<27>()); o.pack(v.template get<28>()); o.pack(v.template get<29>()); o.pack(v.template get<30>()); return o; } }; template struct pack > { template msgpack::packer& operator()( msgpack::packer& o, const type::tuple& v) const { o.pack_array(32); o.pack(v.template get<0>()); o.pack(v.template get<1>()); o.pack(v.template get<2>()); o.pack(v.template get<3>()); o.pack(v.template get<4>()); o.pack(v.template get<5>()); o.pack(v.template get<6>()); o.pack(v.template get<7>()); o.pack(v.template get<8>()); o.pack(v.template get<9>()); o.pack(v.template get<10>()); o.pack(v.template get<11>()); o.pack(v.template get<12>()); o.pack(v.template get<13>()); o.pack(v.template get<14>()); o.pack(v.template get<15>()); o.pack(v.template get<16>()); o.pack(v.template get<17>()); o.pack(v.template get<18>()); o.pack(v.template get<19>()); o.pack(v.template get<20>()); o.pack(v.template get<21>()); o.pack(v.template get<22>()); o.pack(v.template get<23>()); o.pack(v.template get<24>()); o.pack(v.template get<25>()); o.pack(v.template get<26>()); o.pack(v.template get<27>()); o.pack(v.template get<28>()); o.pack(v.template get<29>()); o.pack(v.template get<30>()); o.pack(v.template get<31>()); return o; } }; /// @endcond template <> struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple<>&) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = MSGPACK_NULLPTR; o.via.array.size = 0; } }; /// @cond template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 1; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 2; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 3; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 4; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 5; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 6; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 7; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 8; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 9; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 10; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 11; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 12; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 13; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 14; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 15; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 16; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*17, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 17; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*18, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 18; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*19, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 19; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*20, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 20; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*21, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 21; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*22, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 22; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*23, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 23; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*24, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 24; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*25, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 25; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*26, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 26; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*27, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 27; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*28, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 28; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*29, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 29; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*30, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 30; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*31, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 31; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); o.via.array.ptr[30] = msgpack::object(v.template get<30>(), o.zone); } }; template struct object_with_zone > { void operator()( msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*32, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 32; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); o.via.array.ptr[30] = msgpack::object(v.template get<30>(), o.zone); o.via.array.ptr[31] = msgpack::object(v.template get<31>(), o.zone); } }; /// @endcond } // namespace adaptor /// @cond } // MSGPACK_API_VERSION_NAMESPACE(v1) /// @endcond } // namespace msgpack #endif // MSGPACK_V1_CPP03_MSGPACK_TUPLE_HPP