diff --git a/include/msgpack/adaptor/detail/cpp11_define.hpp b/include/msgpack/adaptor/detail/cpp11_define.hpp index 2b0b28be..1953d4b4 100644 --- a/include/msgpack/adaptor/detail/cpp11_define.hpp +++ b/include/msgpack/adaptor/detail/cpp11_define.hpp @@ -21,7 +21,11 @@ #include "msgpack/versioning.hpp" #include "msgpack_fwd.hpp" +// for MSGPACK_ADD_ENUM +#include "msgpack/adaptor/int_fwd.hpp" + #include +#include #define MSGPACK_DEFINE(...) \ template \ @@ -110,7 +114,7 @@ struct define_imp { template struct define { typedef define value_type; - typedef tuple tuple_type; + typedef std::tuple tuple_type; define(Args&... args) : a(args...) {} template @@ -118,13 +122,13 @@ struct define { { pk.pack_array(sizeof...(Args)); - define_imp, sizeof...(Args)>::pack(pk, a); + define_imp, sizeof...(Args)>::pack(pk, a); } void msgpack_unpack(msgpack::object const& o) { if(o.type != type::ARRAY) { throw type_error(); } - define_imp, sizeof...(Args)>::unpack(o, a); + define_imp, 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(z.allocate_align(sizeof(object)*sizeof...(Args))); o->via.array.size = sizeof...(Args); - define_imp, sizeof...(Args)>::object(o, z, a); + define_imp, sizeof...(Args)>::object(o, z, a); } - tuple a; + std::tuple a; }; template <> struct define<> { typedef define<> value_type; - typedef tuple<> tuple_type; + typedef std::tuple<> tuple_type; template void msgpack_pack(Packer& pk) const {