mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-19 04:33:27 +02:00
Replaced tuple with std::tuple.
Added include file int_fwd.hpp for MSGPACK_ADD_ENUM.
This commit is contained in:
@@ -21,7 +21,11 @@
|
||||
#include "msgpack/versioning.hpp"
|
||||
#include "msgpack_fwd.hpp"
|
||||
|
||||
// for MSGPACK_ADD_ENUM
|
||||
#include "msgpack/adaptor/int_fwd.hpp"
|
||||
|
||||
#include <type_traits>
|
||||
#include <tuple>
|
||||
|
||||
#define MSGPACK_DEFINE(...) \
|
||||
template <typename Packer> \
|
||||
@@ -110,7 +114,7 @@ struct define_imp<Tuple, 1> {
|
||||
template <typename... Args>
|
||||
struct define {
|
||||
typedef define<Args...> value_type;
|
||||
typedef tuple<Args...> tuple_type;
|
||||
typedef std::tuple<Args...> tuple_type;
|
||||
define(Args&... args) :
|
||||
a(args...) {}
|
||||
template <typename Packer>
|
||||
@@ -118,13 +122,13 @@ struct define {
|
||||
{
|
||||
pk.pack_array(sizeof...(Args));
|
||||
|
||||
define_imp<tuple<Args&...>, sizeof...(Args)>::pack(pk, a);
|
||||
define_imp<std::tuple<Args&...>, sizeof...(Args)>::pack(pk, a);
|
||||
}
|
||||
void msgpack_unpack(msgpack::object const& o)
|
||||
{
|
||||
if(o.type != type::ARRAY) { throw type_error(); }
|
||||
|
||||
define_imp<tuple<Args&...>, sizeof...(Args)>::unpack(o, a);
|
||||
define_imp<std::tuple<Args&...>, sizeof...(Args)>::unpack(o, a);
|
||||
}
|
||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||
{
|
||||
@@ -132,16 +136,16 @@ struct define {
|
||||
o->via.array.ptr = static_cast<object*>(z.allocate_align(sizeof(object)*sizeof...(Args)));
|
||||
o->via.array.size = sizeof...(Args);
|
||||
|
||||
define_imp<tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
|
||||
define_imp<std::tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
|
||||
}
|
||||
|
||||
tuple<Args&...> a;
|
||||
std::tuple<Args&...> a;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct define<> {
|
||||
typedef define<> value_type;
|
||||
typedef tuple<> tuple_type;
|
||||
typedef std::tuple<> tuple_type;
|
||||
template <typename Packer>
|
||||
void msgpack_pack(Packer& pk) const
|
||||
{
|
||||
|
Reference in New Issue
Block a user