// // 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_DECL_HPP #define MSGPACK_V1_CPP03_MSGPACK_TUPLE_DECL_HPP #include "msgpack/versioning.hpp" #include "msgpack/object.hpp" #include "msgpack/adaptor/adaptor_base.hpp" namespace msgpack { /// @cond MSGPACK_API_VERSION_NAMESPACE(v1) { /// @endcond namespace type { // FIXME operator== // FIXME operator!= <% GENERATION_LIMIT = 31 %> /// @cond template , typename A<%=i%> = void<%}%>> struct tuple; /// @endcond template struct tuple_element; template struct const_tuple_element; template struct tuple_type; /// @cond <%0.upto(GENERATION_LIMIT) {|i|%> template , typename A<%=j%><%}%>> typename type::tuple_element, A<%=j%><%}%>>, N>::reference get(type::tuple, A<%=j%><%}%>>& t); template , typename A<%=j%><%}%>> typename type::const_tuple_element, A<%=j%><%}%>>, N>::const_reference get(type::tuple, A<%=j%><%}%>> const& t); <%}%> /// @endcond tuple<> make_tuple(); /// @cond <%0.upto(GENERATION_LIMIT) {|i|%> template , typename A<%=j%><%}%>> tuple, A<%=j%><%}%>> make_tuple(typename tuple_type::transparent_reference a0<%1.upto(i) {|j|%>, typename tuple_type>::transparent_reference a<%=j%><%}%>); <%}%> /// @endcond } // namespace type /// @cond } // MSGPACK_API_VERSION_NAMESPACE(v1) /// @endcond } // namespace msgpack #endif // MSGPACK_V1_CPP03_MSGPACK_TUPLE_DECL_HPP