10 #ifndef MSGPACK_V1_CPP11_DEFINE_MAP_HPP 11 #define MSGPACK_V1_CPP11_DEFINE_MAP_HPP 24 template <
typename Tuple, std::
size_t N>
26 template <
typename Packer>
27 static void pack(Packer& pk, Tuple
const& t) {
29 pk.pack(std::get<N-1>(t));
33 std::map<std::string, msgpack::object const*>
const& kvmap) {
35 auto it = kvmap.find(std::get<N-2>(t));
36 if (it != kvmap.end()) {
37 it->second->convert(std::get<N-1>(t));
47 template <
typename Tuple>
49 template <
typename Packer>
50 static void pack(Packer&, Tuple
const&) {}
53 std::map<std::string, msgpack::object const*>
const&) {}
57 template <
typename... Args>
61 template <
typename Packer>
64 static_assert(
sizeof...(Args) % 2 == 0,
"");
65 pk.pack_map(
sizeof...(Args) / 2);
72 std::map<std::string, msgpack::object const*> kvmap;
73 for (uint32_t i = 0; i < o.
via.
map.
size; ++i) {
84 static_assert(
sizeof...(Args) % 2 == 0,
"");
89 define_map_imp<std::tuple<Args&...>,
sizeof...(Args)>::
object(o, z, a);
92 std::tuple<Args&...>
a;
96 template <
typename... Args>
108 #endif // MSGPACK_V1_CPP11_DEFINE_MAP_HPP Definition: cpp11_define_map.hpp:25
msgpack::object_kv * ptr
Definition: object_fwd.hpp:29
static void unpack(msgpack::object const &, Tuple const &, std::map< std::string, msgpack::object const *> const &)
Definition: cpp11_define_map.hpp:51
std::tuple< Args &... > a
Definition: cpp11_define_map.hpp:92
void * allocate_align(size_t size, size_t align=MSGPACK_ZONE_ALIGN)
Definition: cpp03_zone.hpp:236
static void unpack(msgpack::object const &o, Tuple const &t, std::map< std::string, msgpack::object const *> const &kvmap)
Definition: cpp11_define_map.hpp:31
void msgpack_pack(Packer &pk) const
Definition: cpp11_define_map.hpp:62
static void object(msgpack::object *o, msgpack::zone &z, Tuple const &t)
Definition: cpp11_define_map.hpp:40
union_type via
Definition: object_fwd.hpp:93
Definition: cpp11_define_map.hpp:58
msgpack::object val
Definition: object.hpp:31
Definition: adaptor_base.hpp:15
const char * ptr
Definition: object_fwd.hpp:34
Definition: cpp03_zone.hpp:22
Definition: object.hpp:29
static void pack(Packer &, Tuple const &)
Definition: cpp11_define_map.hpp:50
void msgpack_unpack(msgpack::object const &o) const
Definition: cpp11_define_map.hpp:69
Definition: object_fwd.hpp:236
void msgpack_object(msgpack::object *o, msgpack::zone &z) const
Definition: cpp11_define_map.hpp:82
msgpack::object_map map
Definition: object_fwd.hpp:86
define_map make_define_map()
Definition: cpp03_define_map.hpp:2530
msgpack::object_str str
Definition: object_fwd.hpp:87
Object class that corresponding to MessagePack format object.
Definition: object_fwd.hpp:75
static void object(msgpack::object *, msgpack::zone &, Tuple const &)
Definition: cpp11_define_map.hpp:54
msgpack::type::object_type type
Definition: object_fwd.hpp:92
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition: versioning.hpp:58
msgpack::object key
Definition: object.hpp:30
uint32_t size
Definition: object_fwd.hpp:28
Definition: object_fwd_decl.hpp:42
static void pack(Packer &pk, Tuple const &t)
Definition: cpp11_define_map.hpp:27
uint32_t size
Definition: object_fwd.hpp:33
define_map(Args &... args)
Definition: cpp11_define_map.hpp:59