Replaced tuple with std::tuple.

Added include file int_fwd.hpp for MSGPACK_ADD_ENUM.
This commit is contained in:
Takatoshi Kondo
2014-10-16 14:07:53 +09:00
parent ca12e6d39d
commit fc65bc0682

View File

@@ -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
{