mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-20 14:02:40 +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/versioning.hpp"
|
||||||
#include "msgpack_fwd.hpp"
|
#include "msgpack_fwd.hpp"
|
||||||
|
|
||||||
|
// for MSGPACK_ADD_ENUM
|
||||||
|
#include "msgpack/adaptor/int_fwd.hpp"
|
||||||
|
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
#define MSGPACK_DEFINE(...) \
|
#define MSGPACK_DEFINE(...) \
|
||||||
template <typename Packer> \
|
template <typename Packer> \
|
||||||
@@ -110,7 +114,7 @@ struct define_imp<Tuple, 1> {
|
|||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
struct define {
|
struct define {
|
||||||
typedef define<Args...> value_type;
|
typedef define<Args...> value_type;
|
||||||
typedef tuple<Args...> tuple_type;
|
typedef std::tuple<Args...> tuple_type;
|
||||||
define(Args&... args) :
|
define(Args&... args) :
|
||||||
a(args...) {}
|
a(args...) {}
|
||||||
template <typename Packer>
|
template <typename Packer>
|
||||||
@@ -118,13 +122,13 @@ struct define {
|
|||||||
{
|
{
|
||||||
pk.pack_array(sizeof...(Args));
|
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)
|
void msgpack_unpack(msgpack::object const& o)
|
||||||
{
|
{
|
||||||
if(o.type != type::ARRAY) { throw type_error(); }
|
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
|
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.ptr = static_cast<object*>(z.allocate_align(sizeof(object)*sizeof...(Args)));
|
||||||
o->via.array.size = 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 <>
|
template <>
|
||||||
struct define<> {
|
struct define<> {
|
||||||
typedef define<> value_type;
|
typedef define<> value_type;
|
||||||
typedef tuple<> tuple_type;
|
typedef std::tuple<> tuple_type;
|
||||||
template <typename Packer>
|
template <typename Packer>
|
||||||
void msgpack_pack(Packer& pk) const
|
void msgpack_pack(Packer& pk) const
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user