10#ifndef MSGPACK_V1_CPP11_DEFINE_MAP_HPP
11#define MSGPACK_V1_CPP11_DEFINE_MAP_HPP
25template <
typename Tuple, std::
size_t N>
27 template <
typename Packer>
30 pk.pack(std::get<N-1>(
t));
34 std::map<std::string, msgpack::object const*>
const&
kvmap) {
36 auto it =
kvmap.find(std::get<N-2>(
t));
48template <
typename Tuple>
50 template <
typename Packer>
54 std::map<std::string, msgpack::object const*>
const&) {}
58template <
typename...
Args>
62 template <
typename Packer>
65 static_assert(
sizeof...(Args) % 2 == 0,
"");
66 pk.pack_map(
sizeof...(
Args) / 2);
73 std::map<std::string, msgpack::object const*>
kvmap;
78 o.via.map.ptr[
i].key.via.str.ptr,
79 o.via.map.ptr[
i].key.via.str.size),
80 &
o.via.map.ptr[
i].val);
86 static_assert(
sizeof...(Args) % 2 == 0,
"");
89 o->via.map.size =
sizeof...(Args) / 2;
98template <
typename...
Args>
Definition object_fwd.hpp:231
Definition cpp03_zone.hpp:30
std::enable_if< has_as< T >::value >::type convert_helper(msgpack::object const &o, T &t)
Definition cpp11_convert_helper.hpp:27
@ MAP
Definition object_fwd_decl.hpp:41
@ STR
Definition object_fwd_decl.hpp:38
define_map make_define_map()
Definition cpp03_define_map.hpp:2546
Definition adaptor_base.hpp:15
void convert(T &v, msgpack::object const &o)
Definition object.hpp:1178
msgpack::object_handle unpack(const char *data, std::size_t len, std::size_t &off, bool &referenced, unpack_reference_func f, void *user_data, unpack_limit const &limit)
Unpack msgpack::object from a buffer.
Definition unpack.hpp:1396
msgpack::object_kv * ptr
Definition object_fwd.hpp:29
Object class that corresponding to MessagePack format object.
Definition object_fwd.hpp:75
union_type via
Definition object_fwd.hpp:93
static void unpack(msgpack::object const &, Tuple const &, std::map< std::string, msgpack::object const * > const &)
Definition cpp11_define_map.hpp:52
static void pack(Packer &, Tuple const &)
Definition cpp11_define_map.hpp:51
static void object(msgpack::object *, msgpack::zone &, Tuple const &)
Definition cpp11_define_map.hpp:55
Definition cpp11_define_map.hpp:26
static void unpack(msgpack::object const &o, Tuple const &t, std::map< std::string, msgpack::object const * > const &kvmap)
Definition cpp11_define_map.hpp:32
static void pack(Packer &pk, Tuple const &t)
Definition cpp11_define_map.hpp:28
static void object(msgpack::object *o, msgpack::zone &z, Tuple const &t)
Definition cpp11_define_map.hpp:41
Definition cpp11_define_map.hpp:59
void msgpack_unpack(msgpack::object const &o) const
Definition cpp11_define_map.hpp:70
define_map(Args &... args)
Definition cpp11_define_map.hpp:60
void msgpack_pack(Packer &pk) const
Definition cpp11_define_map.hpp:63
std::tuple< Args &... > a
Definition cpp11_define_map.hpp:94
void msgpack_object(msgpack::object *o, msgpack::zone &z) const
Definition cpp11_define_map.hpp:84
msgpack::object_map map
Definition object_fwd.hpp:86
#define MSGPACK_ZONE_ALIGNOF(type)
Definition cpp03_zone_decl.hpp:30
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition versioning.hpp:66