MessagePack for C++
cpp03_define_map.hpp
Go to the documentation of this file.
1 //
2 // MessagePack for C++ static resolution routine
3 //
4 // Copyright (C) 2015 KONDO Takatoshi
5 //
6 // Distributed under the Boost Software License, Version 1.0.
7 // (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
9 //
10 #ifndef MSGPACK_CPP03_DEFINE_MAP_HPP
11 #define MSGPACK_CPP03_DEFINE_MAP_HPP
12 
13 // BOOST_PP_VARIADICS is defined in boost/preprocessor/config/config.hpp
14 // http://www.boost.org/libs/preprocessor/doc/ref/variadics.html
15 // However, supporting compiler detection is not complete. msgpack-c requires
16 // variadic macro arguments support. So BOOST_PP_VARIADICS is defined here explicitly.
17 #if !defined(MSGPACK_PP_VARIADICS)
18 #define MSGPACK_PP_VARIADICS
19 #endif
20 
21 #include <msgpack/preprocessor.hpp>
22 
23 #include "msgpack/versioning.hpp"
26 #include "msgpack/object_fwd.hpp"
27 
28 #define MSGPACK_DEFINE_MAP_EACH_PROC(r, data, elem) \
29  MSGPACK_PP_IF( \
30  MSGPACK_PP_IS_BEGIN_PARENS(elem), \
31  elem, \
32  (MSGPACK_PP_STRINGIZE(elem))(elem) \
33  )
34 
35 #define MSGPACK_DEFINE_MAP_IMPL(...) \
36  MSGPACK_PP_SEQ_TO_TUPLE( \
37  MSGPACK_PP_SEQ_FOR_EACH( \
38  MSGPACK_DEFINE_MAP_EACH_PROC, \
39  0, \
40  MSGPACK_PP_VARIADIC_TO_SEQ(__VA_ARGS__) \
41  ) \
42  )
43 
44 #define MSGPACK_DEFINE_MAP(...) \
45  template <typename Packer> \
46  void msgpack_pack(Packer& pk) const \
47  { \
48  msgpack::type::make_define_map \
49  MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
50  .msgpack_pack(pk); \
51  } \
52  void msgpack_unpack(msgpack::object const& o) \
53  { \
54  msgpack::type::make_define_map \
55  MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
56  .msgpack_unpack(o); \
57  }\
58  template <typename MSGPACK_OBJECT> \
59  void msgpack_object(MSGPACK_OBJECT* o, msgpack::zone& z) const \
60  { \
61  msgpack::type::make_define_map \
62  MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
63  .msgpack_object(o, z); \
64  }
65 
66 #define MSGPACK_BASE_MAP(base) \
67  (MSGPACK_PP_STRINGIZE(base))(*const_cast<base *>(static_cast<base const*>(this)))
68 
69 namespace msgpack {
73 namespace type {
74 
76 
77 template <typename A0 = void, typename A1 = void, typename A2 = void, typename A3 = void, typename A4 = void, typename A5 = void, typename A6 = void, typename A7 = void, typename A8 = void, typename A9 = void, typename A10 = void, typename A11 = void, typename A12 = void, typename A13 = void, typename A14 = void, typename A15 = void, typename A16 = void, typename A17 = void, typename A18 = void, typename A19 = void, typename A20 = void, typename A21 = void, typename A22 = void, typename A23 = void, typename A24 = void, typename A25 = void, typename A26 = void, typename A27 = void, typename A28 = void, typename A29 = void, typename A30 = void, typename A31 = void, typename A32 = void>
78 struct define_map;
80 
81 template <>
82 struct define_map<> {
83  template <typename Packer>
84  void msgpack_pack(Packer& pk) const
85  {
86  pk.pack_map(0);
87  }
88  void msgpack_unpack(msgpack::object const& o) const
89  {
90  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
91  }
93  {
95  o->via.map.ptr = nullptr;
96  o->via.map.size = 0;
97  }
98 };
99 
101 
102 template <typename A0, typename A1>
103 struct define_map<A0, A1> {
104  define_map(A0& _a0, A1& _a1) :
105  a0(_a0), a1(_a1) {}
106  template <typename Packer>
107  void msgpack_pack(Packer& pk) const
108  {
109  pk.pack_map(1);
110 
111  pk.pack(a0);
112  pk.pack(a1);
113  }
114  void msgpack_unpack(msgpack::object const& o) const
115  {
116  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
117  std::map<std::string, msgpack::object const*> kvmap;
118  for (uint32_t i = 0; i < o.via.map.size; ++i) {
119  kvmap.insert(
120  std::map<std::string, msgpack::object const*>::value_type(
121  std::string(
122  o.via.map.ptr[i].key.via.str.ptr,
123  o.via.map.ptr[i].key.via.str.size),
124  &o.via.map.ptr[i].val
125  )
126  );
127  }
128 
129  {
130  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
131  if (it != kvmap.end()) {
132  it->second->convert(a1);
133  }
134  }
135 
136  }
137  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
138  {
140  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*1));
141  o->via.map.size = 1;
142 
143  o->via.map.ptr[0].key = msgpack::object(a0, z);
144  o->via.map.ptr[0].val = msgpack::object(a1, z);
145 
146  }
147 
148  A0& a0;
149  A1& a1;
150 };
151 
152 template <typename A0, typename A1, typename A2, typename A3>
153 struct define_map<A0, A1, A2, A3> {
154  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3) :
155  a0(_a0), a1(_a1), a2(_a2), a3(_a3) {}
156  template <typename Packer>
157  void msgpack_pack(Packer& pk) const
158  {
159  pk.pack_map(2);
160 
161  pk.pack(a0);
162  pk.pack(a1);
163  pk.pack(a2);
164  pk.pack(a3);
165  }
166  void msgpack_unpack(msgpack::object const& o) const
167  {
168  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
169  std::map<std::string, msgpack::object const*> kvmap;
170  for (uint32_t i = 0; i < o.via.map.size; ++i) {
171  kvmap.insert(
172  std::map<std::string, msgpack::object const*>::value_type(
173  std::string(
174  o.via.map.ptr[i].key.via.str.ptr,
175  o.via.map.ptr[i].key.via.str.size),
176  &o.via.map.ptr[i].val
177  )
178  );
179  }
180 
181  {
182  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
183  if (it != kvmap.end()) {
184  it->second->convert(a1);
185  }
186  }
187 
188  {
189  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
190  if (it != kvmap.end()) {
191  it->second->convert(a3);
192  }
193  }
194 
195  }
196  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
197  {
199  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*2));
200  o->via.map.size = 2;
201 
202  o->via.map.ptr[0].key = msgpack::object(a0, z);
203  o->via.map.ptr[0].val = msgpack::object(a1, z);
204 
205  o->via.map.ptr[1].key = msgpack::object(a2, z);
206  o->via.map.ptr[1].val = msgpack::object(a3, z);
207 
208  }
209 
210  A0& a0;
211  A1& a1;
212  A2& a2;
213  A3& a3;
214 };
215 
216 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
217 struct define_map<A0, A1, A2, A3, A4, A5> {
218  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5) :
219  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {}
220  template <typename Packer>
221  void msgpack_pack(Packer& pk) const
222  {
223  pk.pack_map(3);
224 
225  pk.pack(a0);
226  pk.pack(a1);
227  pk.pack(a2);
228  pk.pack(a3);
229  pk.pack(a4);
230  pk.pack(a5);
231  }
232  void msgpack_unpack(msgpack::object const& o) const
233  {
234  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
235  std::map<std::string, msgpack::object const*> kvmap;
236  for (uint32_t i = 0; i < o.via.map.size; ++i) {
237  kvmap.insert(
238  std::map<std::string, msgpack::object const*>::value_type(
239  std::string(
240  o.via.map.ptr[i].key.via.str.ptr,
241  o.via.map.ptr[i].key.via.str.size),
242  &o.via.map.ptr[i].val
243  )
244  );
245  }
246 
247  {
248  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
249  if (it != kvmap.end()) {
250  it->second->convert(a1);
251  }
252  }
253 
254  {
255  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
256  if (it != kvmap.end()) {
257  it->second->convert(a3);
258  }
259  }
260 
261  {
262  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
263  if (it != kvmap.end()) {
264  it->second->convert(a5);
265  }
266  }
267 
268  }
269  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
270  {
272  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*3));
273  o->via.map.size = 3;
274 
275  o->via.map.ptr[0].key = msgpack::object(a0, z);
276  o->via.map.ptr[0].val = msgpack::object(a1, z);
277 
278  o->via.map.ptr[1].key = msgpack::object(a2, z);
279  o->via.map.ptr[1].val = msgpack::object(a3, z);
280 
281  o->via.map.ptr[2].key = msgpack::object(a4, z);
282  o->via.map.ptr[2].val = msgpack::object(a5, z);
283 
284  }
285 
286  A0& a0;
287  A1& a1;
288  A2& a2;
289  A3& a3;
290  A4& a4;
291  A5& a5;
292 };
293 
294 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
295 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7> {
296  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7) :
297  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {}
298  template <typename Packer>
299  void msgpack_pack(Packer& pk) const
300  {
301  pk.pack_map(4);
302 
303  pk.pack(a0);
304  pk.pack(a1);
305  pk.pack(a2);
306  pk.pack(a3);
307  pk.pack(a4);
308  pk.pack(a5);
309  pk.pack(a6);
310  pk.pack(a7);
311  }
312  void msgpack_unpack(msgpack::object const& o) const
313  {
314  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
315  std::map<std::string, msgpack::object const*> kvmap;
316  for (uint32_t i = 0; i < o.via.map.size; ++i) {
317  kvmap.insert(
318  std::map<std::string, msgpack::object const*>::value_type(
319  std::string(
320  o.via.map.ptr[i].key.via.str.ptr,
321  o.via.map.ptr[i].key.via.str.size),
322  &o.via.map.ptr[i].val
323  )
324  );
325  }
326 
327  {
328  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
329  if (it != kvmap.end()) {
330  it->second->convert(a1);
331  }
332  }
333 
334  {
335  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
336  if (it != kvmap.end()) {
337  it->second->convert(a3);
338  }
339  }
340 
341  {
342  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
343  if (it != kvmap.end()) {
344  it->second->convert(a5);
345  }
346  }
347 
348  {
349  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
350  if (it != kvmap.end()) {
351  it->second->convert(a7);
352  }
353  }
354 
355  }
356  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
357  {
359  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*4));
360  o->via.map.size = 4;
361 
362  o->via.map.ptr[0].key = msgpack::object(a0, z);
363  o->via.map.ptr[0].val = msgpack::object(a1, z);
364 
365  o->via.map.ptr[1].key = msgpack::object(a2, z);
366  o->via.map.ptr[1].val = msgpack::object(a3, z);
367 
368  o->via.map.ptr[2].key = msgpack::object(a4, z);
369  o->via.map.ptr[2].val = msgpack::object(a5, z);
370 
371  o->via.map.ptr[3].key = msgpack::object(a6, z);
372  o->via.map.ptr[3].val = msgpack::object(a7, z);
373 
374  }
375 
376  A0& a0;
377  A1& a1;
378  A2& a2;
379  A3& a3;
380  A4& a4;
381  A5& a5;
382  A6& a6;
383  A7& a7;
384 };
385 
386 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
387 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
388  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9) :
389  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {}
390  template <typename Packer>
391  void msgpack_pack(Packer& pk) const
392  {
393  pk.pack_map(5);
394 
395  pk.pack(a0);
396  pk.pack(a1);
397  pk.pack(a2);
398  pk.pack(a3);
399  pk.pack(a4);
400  pk.pack(a5);
401  pk.pack(a6);
402  pk.pack(a7);
403  pk.pack(a8);
404  pk.pack(a9);
405  }
406  void msgpack_unpack(msgpack::object const& o) const
407  {
408  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
409  std::map<std::string, msgpack::object const*> kvmap;
410  for (uint32_t i = 0; i < o.via.map.size; ++i) {
411  kvmap.insert(
412  std::map<std::string, msgpack::object const*>::value_type(
413  std::string(
414  o.via.map.ptr[i].key.via.str.ptr,
415  o.via.map.ptr[i].key.via.str.size),
416  &o.via.map.ptr[i].val
417  )
418  );
419  }
420 
421  {
422  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
423  if (it != kvmap.end()) {
424  it->second->convert(a1);
425  }
426  }
427 
428  {
429  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
430  if (it != kvmap.end()) {
431  it->second->convert(a3);
432  }
433  }
434 
435  {
436  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
437  if (it != kvmap.end()) {
438  it->second->convert(a5);
439  }
440  }
441 
442  {
443  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
444  if (it != kvmap.end()) {
445  it->second->convert(a7);
446  }
447  }
448 
449  {
450  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
451  if (it != kvmap.end()) {
452  it->second->convert(a9);
453  }
454  }
455 
456  }
457  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
458  {
460  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*5));
461  o->via.map.size = 5;
462 
463  o->via.map.ptr[0].key = msgpack::object(a0, z);
464  o->via.map.ptr[0].val = msgpack::object(a1, z);
465 
466  o->via.map.ptr[1].key = msgpack::object(a2, z);
467  o->via.map.ptr[1].val = msgpack::object(a3, z);
468 
469  o->via.map.ptr[2].key = msgpack::object(a4, z);
470  o->via.map.ptr[2].val = msgpack::object(a5, z);
471 
472  o->via.map.ptr[3].key = msgpack::object(a6, z);
473  o->via.map.ptr[3].val = msgpack::object(a7, z);
474 
475  o->via.map.ptr[4].key = msgpack::object(a8, z);
476  o->via.map.ptr[4].val = msgpack::object(a9, z);
477 
478  }
479 
480  A0& a0;
481  A1& a1;
482  A2& a2;
483  A3& a3;
484  A4& a4;
485  A5& a5;
486  A6& a6;
487  A7& a7;
488  A8& a8;
489  A9& a9;
490 };
491 
492 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
493 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
494  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11) :
495  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {}
496  template <typename Packer>
497  void msgpack_pack(Packer& pk) const
498  {
499  pk.pack_map(6);
500 
501  pk.pack(a0);
502  pk.pack(a1);
503  pk.pack(a2);
504  pk.pack(a3);
505  pk.pack(a4);
506  pk.pack(a5);
507  pk.pack(a6);
508  pk.pack(a7);
509  pk.pack(a8);
510  pk.pack(a9);
511  pk.pack(a10);
512  pk.pack(a11);
513  }
514  void msgpack_unpack(msgpack::object const& o) const
515  {
516  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
517  std::map<std::string, msgpack::object const*> kvmap;
518  for (uint32_t i = 0; i < o.via.map.size; ++i) {
519  kvmap.insert(
520  std::map<std::string, msgpack::object const*>::value_type(
521  std::string(
522  o.via.map.ptr[i].key.via.str.ptr,
523  o.via.map.ptr[i].key.via.str.size),
524  &o.via.map.ptr[i].val
525  )
526  );
527  }
528 
529  {
530  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
531  if (it != kvmap.end()) {
532  it->second->convert(a1);
533  }
534  }
535 
536  {
537  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
538  if (it != kvmap.end()) {
539  it->second->convert(a3);
540  }
541  }
542 
543  {
544  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
545  if (it != kvmap.end()) {
546  it->second->convert(a5);
547  }
548  }
549 
550  {
551  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
552  if (it != kvmap.end()) {
553  it->second->convert(a7);
554  }
555  }
556 
557  {
558  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
559  if (it != kvmap.end()) {
560  it->second->convert(a9);
561  }
562  }
563 
564  {
565  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
566  if (it != kvmap.end()) {
567  it->second->convert(a11);
568  }
569  }
570 
571  }
572  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
573  {
575  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*6));
576  o->via.map.size = 6;
577 
578  o->via.map.ptr[0].key = msgpack::object(a0, z);
579  o->via.map.ptr[0].val = msgpack::object(a1, z);
580 
581  o->via.map.ptr[1].key = msgpack::object(a2, z);
582  o->via.map.ptr[1].val = msgpack::object(a3, z);
583 
584  o->via.map.ptr[2].key = msgpack::object(a4, z);
585  o->via.map.ptr[2].val = msgpack::object(a5, z);
586 
587  o->via.map.ptr[3].key = msgpack::object(a6, z);
588  o->via.map.ptr[3].val = msgpack::object(a7, z);
589 
590  o->via.map.ptr[4].key = msgpack::object(a8, z);
591  o->via.map.ptr[4].val = msgpack::object(a9, z);
592 
593  o->via.map.ptr[5].key = msgpack::object(a10, z);
594  o->via.map.ptr[5].val = msgpack::object(a11, z);
595 
596  }
597 
598  A0& a0;
599  A1& a1;
600  A2& a2;
601  A3& a3;
602  A4& a4;
603  A5& a5;
604  A6& a6;
605  A7& a7;
606  A8& a8;
607  A9& a9;
608  A10& a10;
609  A11& a11;
610 };
611 
612 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
613 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
614  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13) :
615  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {}
616  template <typename Packer>
617  void msgpack_pack(Packer& pk) const
618  {
619  pk.pack_map(7);
620 
621  pk.pack(a0);
622  pk.pack(a1);
623  pk.pack(a2);
624  pk.pack(a3);
625  pk.pack(a4);
626  pk.pack(a5);
627  pk.pack(a6);
628  pk.pack(a7);
629  pk.pack(a8);
630  pk.pack(a9);
631  pk.pack(a10);
632  pk.pack(a11);
633  pk.pack(a12);
634  pk.pack(a13);
635  }
636  void msgpack_unpack(msgpack::object const& o) const
637  {
638  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
639  std::map<std::string, msgpack::object const*> kvmap;
640  for (uint32_t i = 0; i < o.via.map.size; ++i) {
641  kvmap.insert(
642  std::map<std::string, msgpack::object const*>::value_type(
643  std::string(
644  o.via.map.ptr[i].key.via.str.ptr,
645  o.via.map.ptr[i].key.via.str.size),
646  &o.via.map.ptr[i].val
647  )
648  );
649  }
650 
651  {
652  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
653  if (it != kvmap.end()) {
654  it->second->convert(a1);
655  }
656  }
657 
658  {
659  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
660  if (it != kvmap.end()) {
661  it->second->convert(a3);
662  }
663  }
664 
665  {
666  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
667  if (it != kvmap.end()) {
668  it->second->convert(a5);
669  }
670  }
671 
672  {
673  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
674  if (it != kvmap.end()) {
675  it->second->convert(a7);
676  }
677  }
678 
679  {
680  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
681  if (it != kvmap.end()) {
682  it->second->convert(a9);
683  }
684  }
685 
686  {
687  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
688  if (it != kvmap.end()) {
689  it->second->convert(a11);
690  }
691  }
692 
693  {
694  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
695  if (it != kvmap.end()) {
696  it->second->convert(a13);
697  }
698  }
699 
700  }
701  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
702  {
704  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*7));
705  o->via.map.size = 7;
706 
707  o->via.map.ptr[0].key = msgpack::object(a0, z);
708  o->via.map.ptr[0].val = msgpack::object(a1, z);
709 
710  o->via.map.ptr[1].key = msgpack::object(a2, z);
711  o->via.map.ptr[1].val = msgpack::object(a3, z);
712 
713  o->via.map.ptr[2].key = msgpack::object(a4, z);
714  o->via.map.ptr[2].val = msgpack::object(a5, z);
715 
716  o->via.map.ptr[3].key = msgpack::object(a6, z);
717  o->via.map.ptr[3].val = msgpack::object(a7, z);
718 
719  o->via.map.ptr[4].key = msgpack::object(a8, z);
720  o->via.map.ptr[4].val = msgpack::object(a9, z);
721 
722  o->via.map.ptr[5].key = msgpack::object(a10, z);
723  o->via.map.ptr[5].val = msgpack::object(a11, z);
724 
725  o->via.map.ptr[6].key = msgpack::object(a12, z);
726  o->via.map.ptr[6].val = msgpack::object(a13, z);
727 
728  }
729 
730  A0& a0;
731  A1& a1;
732  A2& a2;
733  A3& a3;
734  A4& a4;
735  A5& a5;
736  A6& a6;
737  A7& a7;
738  A8& a8;
739  A9& a9;
740  A10& a10;
741  A11& a11;
742  A12& a12;
743  A13& a13;
744 };
745 
746 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
747 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> {
748  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15) :
749  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {}
750  template <typename Packer>
751  void msgpack_pack(Packer& pk) const
752  {
753  pk.pack_map(8);
754 
755  pk.pack(a0);
756  pk.pack(a1);
757  pk.pack(a2);
758  pk.pack(a3);
759  pk.pack(a4);
760  pk.pack(a5);
761  pk.pack(a6);
762  pk.pack(a7);
763  pk.pack(a8);
764  pk.pack(a9);
765  pk.pack(a10);
766  pk.pack(a11);
767  pk.pack(a12);
768  pk.pack(a13);
769  pk.pack(a14);
770  pk.pack(a15);
771  }
772  void msgpack_unpack(msgpack::object const& o) const
773  {
774  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
775  std::map<std::string, msgpack::object const*> kvmap;
776  for (uint32_t i = 0; i < o.via.map.size; ++i) {
777  kvmap.insert(
778  std::map<std::string, msgpack::object const*>::value_type(
779  std::string(
780  o.via.map.ptr[i].key.via.str.ptr,
781  o.via.map.ptr[i].key.via.str.size),
782  &o.via.map.ptr[i].val
783  )
784  );
785  }
786 
787  {
788  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
789  if (it != kvmap.end()) {
790  it->second->convert(a1);
791  }
792  }
793 
794  {
795  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
796  if (it != kvmap.end()) {
797  it->second->convert(a3);
798  }
799  }
800 
801  {
802  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
803  if (it != kvmap.end()) {
804  it->second->convert(a5);
805  }
806  }
807 
808  {
809  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
810  if (it != kvmap.end()) {
811  it->second->convert(a7);
812  }
813  }
814 
815  {
816  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
817  if (it != kvmap.end()) {
818  it->second->convert(a9);
819  }
820  }
821 
822  {
823  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
824  if (it != kvmap.end()) {
825  it->second->convert(a11);
826  }
827  }
828 
829  {
830  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
831  if (it != kvmap.end()) {
832  it->second->convert(a13);
833  }
834  }
835 
836  {
837  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
838  if (it != kvmap.end()) {
839  it->second->convert(a15);
840  }
841  }
842 
843  }
844  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
845  {
847  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*8));
848  o->via.map.size = 8;
849 
850  o->via.map.ptr[0].key = msgpack::object(a0, z);
851  o->via.map.ptr[0].val = msgpack::object(a1, z);
852 
853  o->via.map.ptr[1].key = msgpack::object(a2, z);
854  o->via.map.ptr[1].val = msgpack::object(a3, z);
855 
856  o->via.map.ptr[2].key = msgpack::object(a4, z);
857  o->via.map.ptr[2].val = msgpack::object(a5, z);
858 
859  o->via.map.ptr[3].key = msgpack::object(a6, z);
860  o->via.map.ptr[3].val = msgpack::object(a7, z);
861 
862  o->via.map.ptr[4].key = msgpack::object(a8, z);
863  o->via.map.ptr[4].val = msgpack::object(a9, z);
864 
865  o->via.map.ptr[5].key = msgpack::object(a10, z);
866  o->via.map.ptr[5].val = msgpack::object(a11, z);
867 
868  o->via.map.ptr[6].key = msgpack::object(a12, z);
869  o->via.map.ptr[6].val = msgpack::object(a13, z);
870 
871  o->via.map.ptr[7].key = msgpack::object(a14, z);
872  o->via.map.ptr[7].val = msgpack::object(a15, z);
873 
874  }
875 
876  A0& a0;
877  A1& a1;
878  A2& a2;
879  A3& a3;
880  A4& a4;
881  A5& a5;
882  A6& a6;
883  A7& a7;
884  A8& a8;
885  A9& a9;
886  A10& a10;
887  A11& a11;
888  A12& a12;
889  A13& a13;
890  A14& a14;
891  A15& a15;
892 };
893 
894 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
895 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> {
896  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17) :
897  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {}
898  template <typename Packer>
899  void msgpack_pack(Packer& pk) const
900  {
901  pk.pack_map(9);
902 
903  pk.pack(a0);
904  pk.pack(a1);
905  pk.pack(a2);
906  pk.pack(a3);
907  pk.pack(a4);
908  pk.pack(a5);
909  pk.pack(a6);
910  pk.pack(a7);
911  pk.pack(a8);
912  pk.pack(a9);
913  pk.pack(a10);
914  pk.pack(a11);
915  pk.pack(a12);
916  pk.pack(a13);
917  pk.pack(a14);
918  pk.pack(a15);
919  pk.pack(a16);
920  pk.pack(a17);
921  }
922  void msgpack_unpack(msgpack::object const& o) const
923  {
924  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
925  std::map<std::string, msgpack::object const*> kvmap;
926  for (uint32_t i = 0; i < o.via.map.size; ++i) {
927  kvmap.insert(
928  std::map<std::string, msgpack::object const*>::value_type(
929  std::string(
930  o.via.map.ptr[i].key.via.str.ptr,
931  o.via.map.ptr[i].key.via.str.size),
932  &o.via.map.ptr[i].val
933  )
934  );
935  }
936 
937  {
938  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
939  if (it != kvmap.end()) {
940  it->second->convert(a1);
941  }
942  }
943 
944  {
945  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
946  if (it != kvmap.end()) {
947  it->second->convert(a3);
948  }
949  }
950 
951  {
952  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
953  if (it != kvmap.end()) {
954  it->second->convert(a5);
955  }
956  }
957 
958  {
959  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
960  if (it != kvmap.end()) {
961  it->second->convert(a7);
962  }
963  }
964 
965  {
966  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
967  if (it != kvmap.end()) {
968  it->second->convert(a9);
969  }
970  }
971 
972  {
973  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
974  if (it != kvmap.end()) {
975  it->second->convert(a11);
976  }
977  }
978 
979  {
980  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
981  if (it != kvmap.end()) {
982  it->second->convert(a13);
983  }
984  }
985 
986  {
987  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
988  if (it != kvmap.end()) {
989  it->second->convert(a15);
990  }
991  }
992 
993  {
994  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
995  if (it != kvmap.end()) {
996  it->second->convert(a17);
997  }
998  }
999 
1000  }
1001  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
1002  {
1003  o->type = msgpack::type::MAP;
1004  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*9));
1005  o->via.map.size = 9;
1006 
1007  o->via.map.ptr[0].key = msgpack::object(a0, z);
1008  o->via.map.ptr[0].val = msgpack::object(a1, z);
1009 
1010  o->via.map.ptr[1].key = msgpack::object(a2, z);
1011  o->via.map.ptr[1].val = msgpack::object(a3, z);
1012 
1013  o->via.map.ptr[2].key = msgpack::object(a4, z);
1014  o->via.map.ptr[2].val = msgpack::object(a5, z);
1015 
1016  o->via.map.ptr[3].key = msgpack::object(a6, z);
1017  o->via.map.ptr[3].val = msgpack::object(a7, z);
1018 
1019  o->via.map.ptr[4].key = msgpack::object(a8, z);
1020  o->via.map.ptr[4].val = msgpack::object(a9, z);
1021 
1022  o->via.map.ptr[5].key = msgpack::object(a10, z);
1023  o->via.map.ptr[5].val = msgpack::object(a11, z);
1024 
1025  o->via.map.ptr[6].key = msgpack::object(a12, z);
1026  o->via.map.ptr[6].val = msgpack::object(a13, z);
1027 
1028  o->via.map.ptr[7].key = msgpack::object(a14, z);
1029  o->via.map.ptr[7].val = msgpack::object(a15, z);
1030 
1031  o->via.map.ptr[8].key = msgpack::object(a16, z);
1032  o->via.map.ptr[8].val = msgpack::object(a17, z);
1033 
1034  }
1035 
1036  A0& a0;
1037  A1& a1;
1038  A2& a2;
1039  A3& a3;
1040  A4& a4;
1041  A5& a5;
1042  A6& a6;
1043  A7& a7;
1044  A8& a8;
1045  A9& a9;
1046  A10& a10;
1047  A11& a11;
1048  A12& a12;
1049  A13& a13;
1050  A14& a14;
1051  A15& a15;
1052  A16& a16;
1053  A17& a17;
1054 };
1055 
1056 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
1057 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> {
1058  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19) :
1059  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {}
1060  template <typename Packer>
1061  void msgpack_pack(Packer& pk) const
1062  {
1063  pk.pack_map(10);
1064 
1065  pk.pack(a0);
1066  pk.pack(a1);
1067  pk.pack(a2);
1068  pk.pack(a3);
1069  pk.pack(a4);
1070  pk.pack(a5);
1071  pk.pack(a6);
1072  pk.pack(a7);
1073  pk.pack(a8);
1074  pk.pack(a9);
1075  pk.pack(a10);
1076  pk.pack(a11);
1077  pk.pack(a12);
1078  pk.pack(a13);
1079  pk.pack(a14);
1080  pk.pack(a15);
1081  pk.pack(a16);
1082  pk.pack(a17);
1083  pk.pack(a18);
1084  pk.pack(a19);
1085  }
1086  void msgpack_unpack(msgpack::object const& o) const
1087  {
1088  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
1089  std::map<std::string, msgpack::object const*> kvmap;
1090  for (uint32_t i = 0; i < o.via.map.size; ++i) {
1091  kvmap.insert(
1092  std::map<std::string, msgpack::object const*>::value_type(
1093  std::string(
1094  o.via.map.ptr[i].key.via.str.ptr,
1095  o.via.map.ptr[i].key.via.str.size),
1096  &o.via.map.ptr[i].val
1097  )
1098  );
1099  }
1100 
1101  {
1102  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
1103  if (it != kvmap.end()) {
1104  it->second->convert(a1);
1105  }
1106  }
1107 
1108  {
1109  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
1110  if (it != kvmap.end()) {
1111  it->second->convert(a3);
1112  }
1113  }
1114 
1115  {
1116  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
1117  if (it != kvmap.end()) {
1118  it->second->convert(a5);
1119  }
1120  }
1121 
1122  {
1123  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
1124  if (it != kvmap.end()) {
1125  it->second->convert(a7);
1126  }
1127  }
1128 
1129  {
1130  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
1131  if (it != kvmap.end()) {
1132  it->second->convert(a9);
1133  }
1134  }
1135 
1136  {
1137  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
1138  if (it != kvmap.end()) {
1139  it->second->convert(a11);
1140  }
1141  }
1142 
1143  {
1144  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
1145  if (it != kvmap.end()) {
1146  it->second->convert(a13);
1147  }
1148  }
1149 
1150  {
1151  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
1152  if (it != kvmap.end()) {
1153  it->second->convert(a15);
1154  }
1155  }
1156 
1157  {
1158  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
1159  if (it != kvmap.end()) {
1160  it->second->convert(a17);
1161  }
1162  }
1163 
1164  {
1165  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
1166  if (it != kvmap.end()) {
1167  it->second->convert(a19);
1168  }
1169  }
1170 
1171  }
1172  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
1173  {
1174  o->type = msgpack::type::MAP;
1175  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*10));
1176  o->via.map.size = 10;
1177 
1178  o->via.map.ptr[0].key = msgpack::object(a0, z);
1179  o->via.map.ptr[0].val = msgpack::object(a1, z);
1180 
1181  o->via.map.ptr[1].key = msgpack::object(a2, z);
1182  o->via.map.ptr[1].val = msgpack::object(a3, z);
1183 
1184  o->via.map.ptr[2].key = msgpack::object(a4, z);
1185  o->via.map.ptr[2].val = msgpack::object(a5, z);
1186 
1187  o->via.map.ptr[3].key = msgpack::object(a6, z);
1188  o->via.map.ptr[3].val = msgpack::object(a7, z);
1189 
1190  o->via.map.ptr[4].key = msgpack::object(a8, z);
1191  o->via.map.ptr[4].val = msgpack::object(a9, z);
1192 
1193  o->via.map.ptr[5].key = msgpack::object(a10, z);
1194  o->via.map.ptr[5].val = msgpack::object(a11, z);
1195 
1196  o->via.map.ptr[6].key = msgpack::object(a12, z);
1197  o->via.map.ptr[6].val = msgpack::object(a13, z);
1198 
1199  o->via.map.ptr[7].key = msgpack::object(a14, z);
1200  o->via.map.ptr[7].val = msgpack::object(a15, z);
1201 
1202  o->via.map.ptr[8].key = msgpack::object(a16, z);
1203  o->via.map.ptr[8].val = msgpack::object(a17, z);
1204 
1205  o->via.map.ptr[9].key = msgpack::object(a18, z);
1206  o->via.map.ptr[9].val = msgpack::object(a19, z);
1207 
1208  }
1209 
1210  A0& a0;
1211  A1& a1;
1212  A2& a2;
1213  A3& a3;
1214  A4& a4;
1215  A5& a5;
1216  A6& a6;
1217  A7& a7;
1218  A8& a8;
1219  A9& a9;
1220  A10& a10;
1221  A11& a11;
1222  A12& a12;
1223  A13& a13;
1224  A14& a14;
1225  A15& a15;
1226  A16& a16;
1227  A17& a17;
1228  A18& a18;
1229  A19& a19;
1230 };
1231 
1232 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
1233 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> {
1234  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21) :
1235  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {}
1236  template <typename Packer>
1237  void msgpack_pack(Packer& pk) const
1238  {
1239  pk.pack_map(11);
1240 
1241  pk.pack(a0);
1242  pk.pack(a1);
1243  pk.pack(a2);
1244  pk.pack(a3);
1245  pk.pack(a4);
1246  pk.pack(a5);
1247  pk.pack(a6);
1248  pk.pack(a7);
1249  pk.pack(a8);
1250  pk.pack(a9);
1251  pk.pack(a10);
1252  pk.pack(a11);
1253  pk.pack(a12);
1254  pk.pack(a13);
1255  pk.pack(a14);
1256  pk.pack(a15);
1257  pk.pack(a16);
1258  pk.pack(a17);
1259  pk.pack(a18);
1260  pk.pack(a19);
1261  pk.pack(a20);
1262  pk.pack(a21);
1263  }
1264  void msgpack_unpack(msgpack::object const& o) const
1265  {
1266  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
1267  std::map<std::string, msgpack::object const*> kvmap;
1268  for (uint32_t i = 0; i < o.via.map.size; ++i) {
1269  kvmap.insert(
1270  std::map<std::string, msgpack::object const*>::value_type(
1271  std::string(
1272  o.via.map.ptr[i].key.via.str.ptr,
1273  o.via.map.ptr[i].key.via.str.size),
1274  &o.via.map.ptr[i].val
1275  )
1276  );
1277  }
1278 
1279  {
1280  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
1281  if (it != kvmap.end()) {
1282  it->second->convert(a1);
1283  }
1284  }
1285 
1286  {
1287  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
1288  if (it != kvmap.end()) {
1289  it->second->convert(a3);
1290  }
1291  }
1292 
1293  {
1294  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
1295  if (it != kvmap.end()) {
1296  it->second->convert(a5);
1297  }
1298  }
1299 
1300  {
1301  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
1302  if (it != kvmap.end()) {
1303  it->second->convert(a7);
1304  }
1305  }
1306 
1307  {
1308  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
1309  if (it != kvmap.end()) {
1310  it->second->convert(a9);
1311  }
1312  }
1313 
1314  {
1315  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
1316  if (it != kvmap.end()) {
1317  it->second->convert(a11);
1318  }
1319  }
1320 
1321  {
1322  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
1323  if (it != kvmap.end()) {
1324  it->second->convert(a13);
1325  }
1326  }
1327 
1328  {
1329  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
1330  if (it != kvmap.end()) {
1331  it->second->convert(a15);
1332  }
1333  }
1334 
1335  {
1336  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
1337  if (it != kvmap.end()) {
1338  it->second->convert(a17);
1339  }
1340  }
1341 
1342  {
1343  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
1344  if (it != kvmap.end()) {
1345  it->second->convert(a19);
1346  }
1347  }
1348 
1349  {
1350  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
1351  if (it != kvmap.end()) {
1352  it->second->convert(a21);
1353  }
1354  }
1355 
1356  }
1357  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
1358  {
1359  o->type = msgpack::type::MAP;
1360  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*11));
1361  o->via.map.size = 11;
1362 
1363  o->via.map.ptr[0].key = msgpack::object(a0, z);
1364  o->via.map.ptr[0].val = msgpack::object(a1, z);
1365 
1366  o->via.map.ptr[1].key = msgpack::object(a2, z);
1367  o->via.map.ptr[1].val = msgpack::object(a3, z);
1368 
1369  o->via.map.ptr[2].key = msgpack::object(a4, z);
1370  o->via.map.ptr[2].val = msgpack::object(a5, z);
1371 
1372  o->via.map.ptr[3].key = msgpack::object(a6, z);
1373  o->via.map.ptr[3].val = msgpack::object(a7, z);
1374 
1375  o->via.map.ptr[4].key = msgpack::object(a8, z);
1376  o->via.map.ptr[4].val = msgpack::object(a9, z);
1377 
1378  o->via.map.ptr[5].key = msgpack::object(a10, z);
1379  o->via.map.ptr[5].val = msgpack::object(a11, z);
1380 
1381  o->via.map.ptr[6].key = msgpack::object(a12, z);
1382  o->via.map.ptr[6].val = msgpack::object(a13, z);
1383 
1384  o->via.map.ptr[7].key = msgpack::object(a14, z);
1385  o->via.map.ptr[7].val = msgpack::object(a15, z);
1386 
1387  o->via.map.ptr[8].key = msgpack::object(a16, z);
1388  o->via.map.ptr[8].val = msgpack::object(a17, z);
1389 
1390  o->via.map.ptr[9].key = msgpack::object(a18, z);
1391  o->via.map.ptr[9].val = msgpack::object(a19, z);
1392 
1393  o->via.map.ptr[10].key = msgpack::object(a20, z);
1394  o->via.map.ptr[10].val = msgpack::object(a21, z);
1395 
1396  }
1397 
1398  A0& a0;
1399  A1& a1;
1400  A2& a2;
1401  A3& a3;
1402  A4& a4;
1403  A5& a5;
1404  A6& a6;
1405  A7& a7;
1406  A8& a8;
1407  A9& a9;
1408  A10& a10;
1409  A11& a11;
1410  A12& a12;
1411  A13& a13;
1412  A14& a14;
1413  A15& a15;
1414  A16& a16;
1415  A17& a17;
1416  A18& a18;
1417  A19& a19;
1418  A20& a20;
1419  A21& a21;
1420 };
1421 
1422 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
1423 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> {
1424  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23) :
1425  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {}
1426  template <typename Packer>
1427  void msgpack_pack(Packer& pk) const
1428  {
1429  pk.pack_map(12);
1430 
1431  pk.pack(a0);
1432  pk.pack(a1);
1433  pk.pack(a2);
1434  pk.pack(a3);
1435  pk.pack(a4);
1436  pk.pack(a5);
1437  pk.pack(a6);
1438  pk.pack(a7);
1439  pk.pack(a8);
1440  pk.pack(a9);
1441  pk.pack(a10);
1442  pk.pack(a11);
1443  pk.pack(a12);
1444  pk.pack(a13);
1445  pk.pack(a14);
1446  pk.pack(a15);
1447  pk.pack(a16);
1448  pk.pack(a17);
1449  pk.pack(a18);
1450  pk.pack(a19);
1451  pk.pack(a20);
1452  pk.pack(a21);
1453  pk.pack(a22);
1454  pk.pack(a23);
1455  }
1456  void msgpack_unpack(msgpack::object const& o) const
1457  {
1458  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
1459  std::map<std::string, msgpack::object const*> kvmap;
1460  for (uint32_t i = 0; i < o.via.map.size; ++i) {
1461  kvmap.insert(
1462  std::map<std::string, msgpack::object const*>::value_type(
1463  std::string(
1464  o.via.map.ptr[i].key.via.str.ptr,
1465  o.via.map.ptr[i].key.via.str.size),
1466  &o.via.map.ptr[i].val
1467  )
1468  );
1469  }
1470 
1471  {
1472  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
1473  if (it != kvmap.end()) {
1474  it->second->convert(a1);
1475  }
1476  }
1477 
1478  {
1479  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
1480  if (it != kvmap.end()) {
1481  it->second->convert(a3);
1482  }
1483  }
1484 
1485  {
1486  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
1487  if (it != kvmap.end()) {
1488  it->second->convert(a5);
1489  }
1490  }
1491 
1492  {
1493  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
1494  if (it != kvmap.end()) {
1495  it->second->convert(a7);
1496  }
1497  }
1498 
1499  {
1500  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
1501  if (it != kvmap.end()) {
1502  it->second->convert(a9);
1503  }
1504  }
1505 
1506  {
1507  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
1508  if (it != kvmap.end()) {
1509  it->second->convert(a11);
1510  }
1511  }
1512 
1513  {
1514  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
1515  if (it != kvmap.end()) {
1516  it->second->convert(a13);
1517  }
1518  }
1519 
1520  {
1521  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
1522  if (it != kvmap.end()) {
1523  it->second->convert(a15);
1524  }
1525  }
1526 
1527  {
1528  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
1529  if (it != kvmap.end()) {
1530  it->second->convert(a17);
1531  }
1532  }
1533 
1534  {
1535  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
1536  if (it != kvmap.end()) {
1537  it->second->convert(a19);
1538  }
1539  }
1540 
1541  {
1542  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
1543  if (it != kvmap.end()) {
1544  it->second->convert(a21);
1545  }
1546  }
1547 
1548  {
1549  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
1550  if (it != kvmap.end()) {
1551  it->second->convert(a23);
1552  }
1553  }
1554 
1555  }
1556  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
1557  {
1558  o->type = msgpack::type::MAP;
1559  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*12));
1560  o->via.map.size = 12;
1561 
1562  o->via.map.ptr[0].key = msgpack::object(a0, z);
1563  o->via.map.ptr[0].val = msgpack::object(a1, z);
1564 
1565  o->via.map.ptr[1].key = msgpack::object(a2, z);
1566  o->via.map.ptr[1].val = msgpack::object(a3, z);
1567 
1568  o->via.map.ptr[2].key = msgpack::object(a4, z);
1569  o->via.map.ptr[2].val = msgpack::object(a5, z);
1570 
1571  o->via.map.ptr[3].key = msgpack::object(a6, z);
1572  o->via.map.ptr[3].val = msgpack::object(a7, z);
1573 
1574  o->via.map.ptr[4].key = msgpack::object(a8, z);
1575  o->via.map.ptr[4].val = msgpack::object(a9, z);
1576 
1577  o->via.map.ptr[5].key = msgpack::object(a10, z);
1578  o->via.map.ptr[5].val = msgpack::object(a11, z);
1579 
1580  o->via.map.ptr[6].key = msgpack::object(a12, z);
1581  o->via.map.ptr[6].val = msgpack::object(a13, z);
1582 
1583  o->via.map.ptr[7].key = msgpack::object(a14, z);
1584  o->via.map.ptr[7].val = msgpack::object(a15, z);
1585 
1586  o->via.map.ptr[8].key = msgpack::object(a16, z);
1587  o->via.map.ptr[8].val = msgpack::object(a17, z);
1588 
1589  o->via.map.ptr[9].key = msgpack::object(a18, z);
1590  o->via.map.ptr[9].val = msgpack::object(a19, z);
1591 
1592  o->via.map.ptr[10].key = msgpack::object(a20, z);
1593  o->via.map.ptr[10].val = msgpack::object(a21, z);
1594 
1595  o->via.map.ptr[11].key = msgpack::object(a22, z);
1596  o->via.map.ptr[11].val = msgpack::object(a23, z);
1597 
1598  }
1599 
1600  A0& a0;
1601  A1& a1;
1602  A2& a2;
1603  A3& a3;
1604  A4& a4;
1605  A5& a5;
1606  A6& a6;
1607  A7& a7;
1608  A8& a8;
1609  A9& a9;
1610  A10& a10;
1611  A11& a11;
1612  A12& a12;
1613  A13& a13;
1614  A14& a14;
1615  A15& a15;
1616  A16& a16;
1617  A17& a17;
1618  A18& a18;
1619  A19& a19;
1620  A20& a20;
1621  A21& a21;
1622  A22& a22;
1623  A23& a23;
1624 };
1625 
1626 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
1627 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> {
1628  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25) :
1629  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {}
1630  template <typename Packer>
1631  void msgpack_pack(Packer& pk) const
1632  {
1633  pk.pack_map(13);
1634 
1635  pk.pack(a0);
1636  pk.pack(a1);
1637  pk.pack(a2);
1638  pk.pack(a3);
1639  pk.pack(a4);
1640  pk.pack(a5);
1641  pk.pack(a6);
1642  pk.pack(a7);
1643  pk.pack(a8);
1644  pk.pack(a9);
1645  pk.pack(a10);
1646  pk.pack(a11);
1647  pk.pack(a12);
1648  pk.pack(a13);
1649  pk.pack(a14);
1650  pk.pack(a15);
1651  pk.pack(a16);
1652  pk.pack(a17);
1653  pk.pack(a18);
1654  pk.pack(a19);
1655  pk.pack(a20);
1656  pk.pack(a21);
1657  pk.pack(a22);
1658  pk.pack(a23);
1659  pk.pack(a24);
1660  pk.pack(a25);
1661  }
1662  void msgpack_unpack(msgpack::object const& o) const
1663  {
1664  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
1665  std::map<std::string, msgpack::object const*> kvmap;
1666  for (uint32_t i = 0; i < o.via.map.size; ++i) {
1667  kvmap.insert(
1668  std::map<std::string, msgpack::object const*>::value_type(
1669  std::string(
1670  o.via.map.ptr[i].key.via.str.ptr,
1671  o.via.map.ptr[i].key.via.str.size),
1672  &o.via.map.ptr[i].val
1673  )
1674  );
1675  }
1676 
1677  {
1678  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
1679  if (it != kvmap.end()) {
1680  it->second->convert(a1);
1681  }
1682  }
1683 
1684  {
1685  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
1686  if (it != kvmap.end()) {
1687  it->second->convert(a3);
1688  }
1689  }
1690 
1691  {
1692  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
1693  if (it != kvmap.end()) {
1694  it->second->convert(a5);
1695  }
1696  }
1697 
1698  {
1699  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
1700  if (it != kvmap.end()) {
1701  it->second->convert(a7);
1702  }
1703  }
1704 
1705  {
1706  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
1707  if (it != kvmap.end()) {
1708  it->second->convert(a9);
1709  }
1710  }
1711 
1712  {
1713  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
1714  if (it != kvmap.end()) {
1715  it->second->convert(a11);
1716  }
1717  }
1718 
1719  {
1720  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
1721  if (it != kvmap.end()) {
1722  it->second->convert(a13);
1723  }
1724  }
1725 
1726  {
1727  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
1728  if (it != kvmap.end()) {
1729  it->second->convert(a15);
1730  }
1731  }
1732 
1733  {
1734  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
1735  if (it != kvmap.end()) {
1736  it->second->convert(a17);
1737  }
1738  }
1739 
1740  {
1741  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
1742  if (it != kvmap.end()) {
1743  it->second->convert(a19);
1744  }
1745  }
1746 
1747  {
1748  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
1749  if (it != kvmap.end()) {
1750  it->second->convert(a21);
1751  }
1752  }
1753 
1754  {
1755  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
1756  if (it != kvmap.end()) {
1757  it->second->convert(a23);
1758  }
1759  }
1760 
1761  {
1762  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
1763  if (it != kvmap.end()) {
1764  it->second->convert(a25);
1765  }
1766  }
1767 
1768  }
1769  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
1770  {
1771  o->type = msgpack::type::MAP;
1772  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*13));
1773  o->via.map.size = 13;
1774 
1775  o->via.map.ptr[0].key = msgpack::object(a0, z);
1776  o->via.map.ptr[0].val = msgpack::object(a1, z);
1777 
1778  o->via.map.ptr[1].key = msgpack::object(a2, z);
1779  o->via.map.ptr[1].val = msgpack::object(a3, z);
1780 
1781  o->via.map.ptr[2].key = msgpack::object(a4, z);
1782  o->via.map.ptr[2].val = msgpack::object(a5, z);
1783 
1784  o->via.map.ptr[3].key = msgpack::object(a6, z);
1785  o->via.map.ptr[3].val = msgpack::object(a7, z);
1786 
1787  o->via.map.ptr[4].key = msgpack::object(a8, z);
1788  o->via.map.ptr[4].val = msgpack::object(a9, z);
1789 
1790  o->via.map.ptr[5].key = msgpack::object(a10, z);
1791  o->via.map.ptr[5].val = msgpack::object(a11, z);
1792 
1793  o->via.map.ptr[6].key = msgpack::object(a12, z);
1794  o->via.map.ptr[6].val = msgpack::object(a13, z);
1795 
1796  o->via.map.ptr[7].key = msgpack::object(a14, z);
1797  o->via.map.ptr[7].val = msgpack::object(a15, z);
1798 
1799  o->via.map.ptr[8].key = msgpack::object(a16, z);
1800  o->via.map.ptr[8].val = msgpack::object(a17, z);
1801 
1802  o->via.map.ptr[9].key = msgpack::object(a18, z);
1803  o->via.map.ptr[9].val = msgpack::object(a19, z);
1804 
1805  o->via.map.ptr[10].key = msgpack::object(a20, z);
1806  o->via.map.ptr[10].val = msgpack::object(a21, z);
1807 
1808  o->via.map.ptr[11].key = msgpack::object(a22, z);
1809  o->via.map.ptr[11].val = msgpack::object(a23, z);
1810 
1811  o->via.map.ptr[12].key = msgpack::object(a24, z);
1812  o->via.map.ptr[12].val = msgpack::object(a25, z);
1813 
1814  }
1815 
1816  A0& a0;
1817  A1& a1;
1818  A2& a2;
1819  A3& a3;
1820  A4& a4;
1821  A5& a5;
1822  A6& a6;
1823  A7& a7;
1824  A8& a8;
1825  A9& a9;
1826  A10& a10;
1827  A11& a11;
1828  A12& a12;
1829  A13& a13;
1830  A14& a14;
1831  A15& a15;
1832  A16& a16;
1833  A17& a17;
1834  A18& a18;
1835  A19& a19;
1836  A20& a20;
1837  A21& a21;
1838  A22& a22;
1839  A23& a23;
1840  A24& a24;
1841  A25& a25;
1842 };
1843 
1844 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
1845 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> {
1846  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27) :
1847  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {}
1848  template <typename Packer>
1849  void msgpack_pack(Packer& pk) const
1850  {
1851  pk.pack_map(14);
1852 
1853  pk.pack(a0);
1854  pk.pack(a1);
1855  pk.pack(a2);
1856  pk.pack(a3);
1857  pk.pack(a4);
1858  pk.pack(a5);
1859  pk.pack(a6);
1860  pk.pack(a7);
1861  pk.pack(a8);
1862  pk.pack(a9);
1863  pk.pack(a10);
1864  pk.pack(a11);
1865  pk.pack(a12);
1866  pk.pack(a13);
1867  pk.pack(a14);
1868  pk.pack(a15);
1869  pk.pack(a16);
1870  pk.pack(a17);
1871  pk.pack(a18);
1872  pk.pack(a19);
1873  pk.pack(a20);
1874  pk.pack(a21);
1875  pk.pack(a22);
1876  pk.pack(a23);
1877  pk.pack(a24);
1878  pk.pack(a25);
1879  pk.pack(a26);
1880  pk.pack(a27);
1881  }
1882  void msgpack_unpack(msgpack::object const& o) const
1883  {
1884  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
1885  std::map<std::string, msgpack::object const*> kvmap;
1886  for (uint32_t i = 0; i < o.via.map.size; ++i) {
1887  kvmap.insert(
1888  std::map<std::string, msgpack::object const*>::value_type(
1889  std::string(
1890  o.via.map.ptr[i].key.via.str.ptr,
1891  o.via.map.ptr[i].key.via.str.size),
1892  &o.via.map.ptr[i].val
1893  )
1894  );
1895  }
1896 
1897  {
1898  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
1899  if (it != kvmap.end()) {
1900  it->second->convert(a1);
1901  }
1902  }
1903 
1904  {
1905  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
1906  if (it != kvmap.end()) {
1907  it->second->convert(a3);
1908  }
1909  }
1910 
1911  {
1912  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
1913  if (it != kvmap.end()) {
1914  it->second->convert(a5);
1915  }
1916  }
1917 
1918  {
1919  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
1920  if (it != kvmap.end()) {
1921  it->second->convert(a7);
1922  }
1923  }
1924 
1925  {
1926  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
1927  if (it != kvmap.end()) {
1928  it->second->convert(a9);
1929  }
1930  }
1931 
1932  {
1933  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
1934  if (it != kvmap.end()) {
1935  it->second->convert(a11);
1936  }
1937  }
1938 
1939  {
1940  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
1941  if (it != kvmap.end()) {
1942  it->second->convert(a13);
1943  }
1944  }
1945 
1946  {
1947  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
1948  if (it != kvmap.end()) {
1949  it->second->convert(a15);
1950  }
1951  }
1952 
1953  {
1954  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
1955  if (it != kvmap.end()) {
1956  it->second->convert(a17);
1957  }
1958  }
1959 
1960  {
1961  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
1962  if (it != kvmap.end()) {
1963  it->second->convert(a19);
1964  }
1965  }
1966 
1967  {
1968  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
1969  if (it != kvmap.end()) {
1970  it->second->convert(a21);
1971  }
1972  }
1973 
1974  {
1975  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
1976  if (it != kvmap.end()) {
1977  it->second->convert(a23);
1978  }
1979  }
1980 
1981  {
1982  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
1983  if (it != kvmap.end()) {
1984  it->second->convert(a25);
1985  }
1986  }
1987 
1988  {
1989  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a26);
1990  if (it != kvmap.end()) {
1991  it->second->convert(a27);
1992  }
1993  }
1994 
1995  }
1996  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
1997  {
1998  o->type = msgpack::type::MAP;
1999  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*14));
2000  o->via.map.size = 14;
2001 
2002  o->via.map.ptr[0].key = msgpack::object(a0, z);
2003  o->via.map.ptr[0].val = msgpack::object(a1, z);
2004 
2005  o->via.map.ptr[1].key = msgpack::object(a2, z);
2006  o->via.map.ptr[1].val = msgpack::object(a3, z);
2007 
2008  o->via.map.ptr[2].key = msgpack::object(a4, z);
2009  o->via.map.ptr[2].val = msgpack::object(a5, z);
2010 
2011  o->via.map.ptr[3].key = msgpack::object(a6, z);
2012  o->via.map.ptr[3].val = msgpack::object(a7, z);
2013 
2014  o->via.map.ptr[4].key = msgpack::object(a8, z);
2015  o->via.map.ptr[4].val = msgpack::object(a9, z);
2016 
2017  o->via.map.ptr[5].key = msgpack::object(a10, z);
2018  o->via.map.ptr[5].val = msgpack::object(a11, z);
2019 
2020  o->via.map.ptr[6].key = msgpack::object(a12, z);
2021  o->via.map.ptr[6].val = msgpack::object(a13, z);
2022 
2023  o->via.map.ptr[7].key = msgpack::object(a14, z);
2024  o->via.map.ptr[7].val = msgpack::object(a15, z);
2025 
2026  o->via.map.ptr[8].key = msgpack::object(a16, z);
2027  o->via.map.ptr[8].val = msgpack::object(a17, z);
2028 
2029  o->via.map.ptr[9].key = msgpack::object(a18, z);
2030  o->via.map.ptr[9].val = msgpack::object(a19, z);
2031 
2032  o->via.map.ptr[10].key = msgpack::object(a20, z);
2033  o->via.map.ptr[10].val = msgpack::object(a21, z);
2034 
2035  o->via.map.ptr[11].key = msgpack::object(a22, z);
2036  o->via.map.ptr[11].val = msgpack::object(a23, z);
2037 
2038  o->via.map.ptr[12].key = msgpack::object(a24, z);
2039  o->via.map.ptr[12].val = msgpack::object(a25, z);
2040 
2041  o->via.map.ptr[13].key = msgpack::object(a26, z);
2042  o->via.map.ptr[13].val = msgpack::object(a27, z);
2043 
2044  }
2045 
2046  A0& a0;
2047  A1& a1;
2048  A2& a2;
2049  A3& a3;
2050  A4& a4;
2051  A5& a5;
2052  A6& a6;
2053  A7& a7;
2054  A8& a8;
2055  A9& a9;
2056  A10& a10;
2057  A11& a11;
2058  A12& a12;
2059  A13& a13;
2060  A14& a14;
2061  A15& a15;
2062  A16& a16;
2063  A17& a17;
2064  A18& a18;
2065  A19& a19;
2066  A20& a20;
2067  A21& a21;
2068  A22& a22;
2069  A23& a23;
2070  A24& a24;
2071  A25& a25;
2072  A26& a26;
2073  A27& a27;
2074 };
2075 
2076 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
2077 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> {
2078  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29) :
2079  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {}
2080  template <typename Packer>
2081  void msgpack_pack(Packer& pk) const
2082  {
2083  pk.pack_map(15);
2084 
2085  pk.pack(a0);
2086  pk.pack(a1);
2087  pk.pack(a2);
2088  pk.pack(a3);
2089  pk.pack(a4);
2090  pk.pack(a5);
2091  pk.pack(a6);
2092  pk.pack(a7);
2093  pk.pack(a8);
2094  pk.pack(a9);
2095  pk.pack(a10);
2096  pk.pack(a11);
2097  pk.pack(a12);
2098  pk.pack(a13);
2099  pk.pack(a14);
2100  pk.pack(a15);
2101  pk.pack(a16);
2102  pk.pack(a17);
2103  pk.pack(a18);
2104  pk.pack(a19);
2105  pk.pack(a20);
2106  pk.pack(a21);
2107  pk.pack(a22);
2108  pk.pack(a23);
2109  pk.pack(a24);
2110  pk.pack(a25);
2111  pk.pack(a26);
2112  pk.pack(a27);
2113  pk.pack(a28);
2114  pk.pack(a29);
2115  }
2116  void msgpack_unpack(msgpack::object const& o) const
2117  {
2118  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
2119  std::map<std::string, msgpack::object const*> kvmap;
2120  for (uint32_t i = 0; i < o.via.map.size; ++i) {
2121  kvmap.insert(
2122  std::map<std::string, msgpack::object const*>::value_type(
2123  std::string(
2124  o.via.map.ptr[i].key.via.str.ptr,
2125  o.via.map.ptr[i].key.via.str.size),
2126  &o.via.map.ptr[i].val
2127  )
2128  );
2129  }
2130 
2131  {
2132  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
2133  if (it != kvmap.end()) {
2134  it->second->convert(a1);
2135  }
2136  }
2137 
2138  {
2139  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
2140  if (it != kvmap.end()) {
2141  it->second->convert(a3);
2142  }
2143  }
2144 
2145  {
2146  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
2147  if (it != kvmap.end()) {
2148  it->second->convert(a5);
2149  }
2150  }
2151 
2152  {
2153  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
2154  if (it != kvmap.end()) {
2155  it->second->convert(a7);
2156  }
2157  }
2158 
2159  {
2160  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
2161  if (it != kvmap.end()) {
2162  it->second->convert(a9);
2163  }
2164  }
2165 
2166  {
2167  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
2168  if (it != kvmap.end()) {
2169  it->second->convert(a11);
2170  }
2171  }
2172 
2173  {
2174  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
2175  if (it != kvmap.end()) {
2176  it->second->convert(a13);
2177  }
2178  }
2179 
2180  {
2181  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
2182  if (it != kvmap.end()) {
2183  it->second->convert(a15);
2184  }
2185  }
2186 
2187  {
2188  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
2189  if (it != kvmap.end()) {
2190  it->second->convert(a17);
2191  }
2192  }
2193 
2194  {
2195  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
2196  if (it != kvmap.end()) {
2197  it->second->convert(a19);
2198  }
2199  }
2200 
2201  {
2202  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
2203  if (it != kvmap.end()) {
2204  it->second->convert(a21);
2205  }
2206  }
2207 
2208  {
2209  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
2210  if (it != kvmap.end()) {
2211  it->second->convert(a23);
2212  }
2213  }
2214 
2215  {
2216  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
2217  if (it != kvmap.end()) {
2218  it->second->convert(a25);
2219  }
2220  }
2221 
2222  {
2223  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a26);
2224  if (it != kvmap.end()) {
2225  it->second->convert(a27);
2226  }
2227  }
2228 
2229  {
2230  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a28);
2231  if (it != kvmap.end()) {
2232  it->second->convert(a29);
2233  }
2234  }
2235 
2236  }
2237  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
2238  {
2239  o->type = msgpack::type::MAP;
2240  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*15));
2241  o->via.map.size = 15;
2242 
2243  o->via.map.ptr[0].key = msgpack::object(a0, z);
2244  o->via.map.ptr[0].val = msgpack::object(a1, z);
2245 
2246  o->via.map.ptr[1].key = msgpack::object(a2, z);
2247  o->via.map.ptr[1].val = msgpack::object(a3, z);
2248 
2249  o->via.map.ptr[2].key = msgpack::object(a4, z);
2250  o->via.map.ptr[2].val = msgpack::object(a5, z);
2251 
2252  o->via.map.ptr[3].key = msgpack::object(a6, z);
2253  o->via.map.ptr[3].val = msgpack::object(a7, z);
2254 
2255  o->via.map.ptr[4].key = msgpack::object(a8, z);
2256  o->via.map.ptr[4].val = msgpack::object(a9, z);
2257 
2258  o->via.map.ptr[5].key = msgpack::object(a10, z);
2259  o->via.map.ptr[5].val = msgpack::object(a11, z);
2260 
2261  o->via.map.ptr[6].key = msgpack::object(a12, z);
2262  o->via.map.ptr[6].val = msgpack::object(a13, z);
2263 
2264  o->via.map.ptr[7].key = msgpack::object(a14, z);
2265  o->via.map.ptr[7].val = msgpack::object(a15, z);
2266 
2267  o->via.map.ptr[8].key = msgpack::object(a16, z);
2268  o->via.map.ptr[8].val = msgpack::object(a17, z);
2269 
2270  o->via.map.ptr[9].key = msgpack::object(a18, z);
2271  o->via.map.ptr[9].val = msgpack::object(a19, z);
2272 
2273  o->via.map.ptr[10].key = msgpack::object(a20, z);
2274  o->via.map.ptr[10].val = msgpack::object(a21, z);
2275 
2276  o->via.map.ptr[11].key = msgpack::object(a22, z);
2277  o->via.map.ptr[11].val = msgpack::object(a23, z);
2278 
2279  o->via.map.ptr[12].key = msgpack::object(a24, z);
2280  o->via.map.ptr[12].val = msgpack::object(a25, z);
2281 
2282  o->via.map.ptr[13].key = msgpack::object(a26, z);
2283  o->via.map.ptr[13].val = msgpack::object(a27, z);
2284 
2285  o->via.map.ptr[14].key = msgpack::object(a28, z);
2286  o->via.map.ptr[14].val = msgpack::object(a29, z);
2287 
2288  }
2289 
2290  A0& a0;
2291  A1& a1;
2292  A2& a2;
2293  A3& a3;
2294  A4& a4;
2295  A5& a5;
2296  A6& a6;
2297  A7& a7;
2298  A8& a8;
2299  A9& a9;
2300  A10& a10;
2301  A11& a11;
2302  A12& a12;
2303  A13& a13;
2304  A14& a14;
2305  A15& a15;
2306  A16& a16;
2307  A17& a17;
2308  A18& a18;
2309  A19& a19;
2310  A20& a20;
2311  A21& a21;
2312  A22& a22;
2313  A23& a23;
2314  A24& a24;
2315  A25& a25;
2316  A26& a26;
2317  A27& a27;
2318  A28& a28;
2319  A29& a29;
2320 };
2321 
2322 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
2323 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> {
2324  define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30, A31& _a31) :
2325  a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {}
2326  template <typename Packer>
2327  void msgpack_pack(Packer& pk) const
2328  {
2329  pk.pack_map(16);
2330 
2331  pk.pack(a0);
2332  pk.pack(a1);
2333  pk.pack(a2);
2334  pk.pack(a3);
2335  pk.pack(a4);
2336  pk.pack(a5);
2337  pk.pack(a6);
2338  pk.pack(a7);
2339  pk.pack(a8);
2340  pk.pack(a9);
2341  pk.pack(a10);
2342  pk.pack(a11);
2343  pk.pack(a12);
2344  pk.pack(a13);
2345  pk.pack(a14);
2346  pk.pack(a15);
2347  pk.pack(a16);
2348  pk.pack(a17);
2349  pk.pack(a18);
2350  pk.pack(a19);
2351  pk.pack(a20);
2352  pk.pack(a21);
2353  pk.pack(a22);
2354  pk.pack(a23);
2355  pk.pack(a24);
2356  pk.pack(a25);
2357  pk.pack(a26);
2358  pk.pack(a27);
2359  pk.pack(a28);
2360  pk.pack(a29);
2361  pk.pack(a30);
2362  pk.pack(a31);
2363  }
2364  void msgpack_unpack(msgpack::object const& o) const
2365  {
2366  if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
2367  std::map<std::string, msgpack::object const*> kvmap;
2368  for (uint32_t i = 0; i < o.via.map.size; ++i) {
2369  kvmap.insert(
2370  std::map<std::string, msgpack::object const*>::value_type(
2371  std::string(
2372  o.via.map.ptr[i].key.via.str.ptr,
2373  o.via.map.ptr[i].key.via.str.size),
2374  &o.via.map.ptr[i].val
2375  )
2376  );
2377  }
2378 
2379  {
2380  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
2381  if (it != kvmap.end()) {
2382  it->second->convert(a1);
2383  }
2384  }
2385 
2386  {
2387  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
2388  if (it != kvmap.end()) {
2389  it->second->convert(a3);
2390  }
2391  }
2392 
2393  {
2394  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
2395  if (it != kvmap.end()) {
2396  it->second->convert(a5);
2397  }
2398  }
2399 
2400  {
2401  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
2402  if (it != kvmap.end()) {
2403  it->second->convert(a7);
2404  }
2405  }
2406 
2407  {
2408  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
2409  if (it != kvmap.end()) {
2410  it->second->convert(a9);
2411  }
2412  }
2413 
2414  {
2415  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
2416  if (it != kvmap.end()) {
2417  it->second->convert(a11);
2418  }
2419  }
2420 
2421  {
2422  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
2423  if (it != kvmap.end()) {
2424  it->second->convert(a13);
2425  }
2426  }
2427 
2428  {
2429  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
2430  if (it != kvmap.end()) {
2431  it->second->convert(a15);
2432  }
2433  }
2434 
2435  {
2436  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
2437  if (it != kvmap.end()) {
2438  it->second->convert(a17);
2439  }
2440  }
2441 
2442  {
2443  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
2444  if (it != kvmap.end()) {
2445  it->second->convert(a19);
2446  }
2447  }
2448 
2449  {
2450  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
2451  if (it != kvmap.end()) {
2452  it->second->convert(a21);
2453  }
2454  }
2455 
2456  {
2457  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
2458  if (it != kvmap.end()) {
2459  it->second->convert(a23);
2460  }
2461  }
2462 
2463  {
2464  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
2465  if (it != kvmap.end()) {
2466  it->second->convert(a25);
2467  }
2468  }
2469 
2470  {
2471  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a26);
2472  if (it != kvmap.end()) {
2473  it->second->convert(a27);
2474  }
2475  }
2476 
2477  {
2478  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a28);
2479  if (it != kvmap.end()) {
2480  it->second->convert(a29);
2481  }
2482  }
2483 
2484  {
2485  std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a30);
2486  if (it != kvmap.end()) {
2487  it->second->convert(a31);
2488  }
2489  }
2490 
2491  }
2492  void msgpack_object(msgpack::object* o, msgpack::zone& z) const
2493  {
2494  o->type = msgpack::type::MAP;
2495  o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*16));
2496  o->via.map.size = 16;
2497 
2498  o->via.map.ptr[0].key = msgpack::object(a0, z);
2499  o->via.map.ptr[0].val = msgpack::object(a1, z);
2500 
2501  o->via.map.ptr[1].key = msgpack::object(a2, z);
2502  o->via.map.ptr[1].val = msgpack::object(a3, z);
2503 
2504  o->via.map.ptr[2].key = msgpack::object(a4, z);
2505  o->via.map.ptr[2].val = msgpack::object(a5, z);
2506 
2507  o->via.map.ptr[3].key = msgpack::object(a6, z);
2508  o->via.map.ptr[3].val = msgpack::object(a7, z);
2509 
2510  o->via.map.ptr[4].key = msgpack::object(a8, z);
2511  o->via.map.ptr[4].val = msgpack::object(a9, z);
2512 
2513  o->via.map.ptr[5].key = msgpack::object(a10, z);
2514  o->via.map.ptr[5].val = msgpack::object(a11, z);
2515 
2516  o->via.map.ptr[6].key = msgpack::object(a12, z);
2517  o->via.map.ptr[6].val = msgpack::object(a13, z);
2518 
2519  o->via.map.ptr[7].key = msgpack::object(a14, z);
2520  o->via.map.ptr[7].val = msgpack::object(a15, z);
2521 
2522  o->via.map.ptr[8].key = msgpack::object(a16, z);
2523  o->via.map.ptr[8].val = msgpack::object(a17, z);
2524 
2525  o->via.map.ptr[9].key = msgpack::object(a18, z);
2526  o->via.map.ptr[9].val = msgpack::object(a19, z);
2527 
2528  o->via.map.ptr[10].key = msgpack::object(a20, z);
2529  o->via.map.ptr[10].val = msgpack::object(a21, z);
2530 
2531  o->via.map.ptr[11].key = msgpack::object(a22, z);
2532  o->via.map.ptr[11].val = msgpack::object(a23, z);
2533 
2534  o->via.map.ptr[12].key = msgpack::object(a24, z);
2535  o->via.map.ptr[12].val = msgpack::object(a25, z);
2536 
2537  o->via.map.ptr[13].key = msgpack::object(a26, z);
2538  o->via.map.ptr[13].val = msgpack::object(a27, z);
2539 
2540  o->via.map.ptr[14].key = msgpack::object(a28, z);
2541  o->via.map.ptr[14].val = msgpack::object(a29, z);
2542 
2543  o->via.map.ptr[15].key = msgpack::object(a30, z);
2544  o->via.map.ptr[15].val = msgpack::object(a31, z);
2545 
2546  }
2547 
2548  A0& a0;
2549  A1& a1;
2550  A2& a2;
2551  A3& a3;
2552  A4& a4;
2553  A5& a5;
2554  A6& a6;
2555  A7& a7;
2556  A8& a8;
2557  A9& a9;
2558  A10& a10;
2559  A11& a11;
2560  A12& a12;
2561  A13& a13;
2562  A14& a14;
2563  A15& a15;
2564  A16& a16;
2565  A17& a17;
2566  A18& a18;
2567  A19& a19;
2568  A20& a20;
2569  A21& a21;
2570  A22& a22;
2571  A23& a23;
2572  A24& a24;
2573  A25& a25;
2574  A26& a26;
2575  A27& a27;
2576  A28& a28;
2577  A29& a29;
2578  A30& a30;
2579  A31& a31;
2580 };
2581 
2583 
2585 {
2586  return define_map<>();
2587 }
2588 
2590 
2591 template <typename A0>
2592 inline define_map<A0> make_define_map(A0& a0)
2593 {
2594  return define_map<A0>(a0);
2595 }
2596 
2597 template <typename A0, typename A1>
2598 inline define_map<A0, A1> make_define_map(A0& a0, A1& a1)
2599 {
2600  return define_map<A0, A1>(a0, a1);
2601 }
2602 
2603 template <typename A0, typename A1, typename A2>
2604 inline define_map<A0, A1, A2> make_define_map(A0& a0, A1& a1, A2& a2)
2605 {
2606  return define_map<A0, A1, A2>(a0, a1, a2);
2607 }
2608 
2609 template <typename A0, typename A1, typename A2, typename A3>
2610 inline define_map<A0, A1, A2, A3> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3)
2611 {
2612  return define_map<A0, A1, A2, A3>(a0, a1, a2, a3);
2613 }
2614 
2615 template <typename A0, typename A1, typename A2, typename A3, typename A4>
2616 inline define_map<A0, A1, A2, A3, A4> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4)
2617 {
2618  return define_map<A0, A1, A2, A3, A4>(a0, a1, a2, a3, a4);
2619 }
2620 
2621 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
2622 inline define_map<A0, A1, A2, A3, A4, A5> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5)
2623 {
2624  return define_map<A0, A1, A2, A3, A4, A5>(a0, a1, a2, a3, a4, a5);
2625 }
2626 
2627 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
2628 inline define_map<A0, A1, A2, A3, A4, A5, A6> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6)
2629 {
2630  return define_map<A0, A1, A2, A3, A4, A5, A6>(a0, a1, a2, a3, a4, a5, a6);
2631 }
2632 
2633 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
2634 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7)
2635 {
2636  return define_map<A0, A1, A2, A3, A4, A5, A6, A7>(a0, a1, a2, a3, a4, a5, a6, a7);
2637 }
2638 
2639 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
2640 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8)
2641 {
2642  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8>(a0, a1, a2, a3, a4, a5, a6, a7, a8);
2643 }
2644 
2645 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
2646 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9)
2647 {
2648  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
2649 }
2650 
2651 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
2652 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10)
2653 {
2654  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
2655 }
2656 
2657 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
2658 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11)
2659 {
2660  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
2661 }
2662 
2663 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
2664 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12)
2665 {
2666  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
2667 }
2668 
2669 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
2670 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13)
2671 {
2672  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
2673 }
2674 
2675 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
2676 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14)
2677 {
2678  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
2679 }
2680 
2681 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
2682 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15)
2683 {
2684  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
2685 }
2686 
2687 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
2688 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16)
2689 {
2690  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
2691 }
2692 
2693 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
2694 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17)
2695 {
2696  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
2697 }
2698 
2699 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
2700 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18)
2701 {
2702  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);
2703 }
2704 
2705 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
2706 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19)
2707 {
2708  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
2709 }
2710 
2711 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
2712 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20)
2713 {
2714  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
2715 }
2716 
2717 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
2718 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21)
2719 {
2720  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
2721 }
2722 
2723 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
2724 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22)
2725 {
2726  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22);
2727 }
2728 
2729 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
2730 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23)
2731 {
2732  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
2733 }
2734 
2735 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
2736 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24)
2737 {
2738  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
2739 }
2740 
2741 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
2742 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25)
2743 {
2744  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25);
2745 }
2746 
2747 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
2748 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26)
2749 {
2750  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
2751 }
2752 
2753 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
2754 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27)
2755 {
2756  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
2757 }
2758 
2759 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
2760 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28)
2761 {
2762  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
2763 }
2764 
2765 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
2766 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29)
2767 {
2768  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
2769 }
2770 
2771 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
2772 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30)
2773 {
2774  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30);
2775 }
2776 
2777 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
2778 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31)
2779 {
2780  return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31);
2781 }
2782 
2784 
2785 } // namespace type
2787 } // MSGPACK_API_VERSION_NAMESPACE(v1)
2789 } // namespace msgpack
2790 
2791 #endif // MSGPACK_CPP03_DEFINE_MAP_HPP
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition: versioning.hpp:58
msgpack::object_kv * ptr
Definition: object_fwd.hpp:56
void * allocate_align(size_t size, size_t align=MSGPACK_ZONE_ALIGN)
Definition: cpp03_zone.hpp:248
void msgpack_pack(Packer &pk) const
Definition: cpp11_define_map.hpp:117
union_type via
Definition: object_fwd.hpp:123
Definition: cpp11_define_map.hpp:113
msgpack::object val
Definition: object_fwd.hpp:257
Definition: adaptor_base.hpp:15
const char * ptr
Definition: object_fwd.hpp:61
Definition: cpp03_zone.hpp:34
Definition: object_fwd.hpp:255
void msgpack_unpack(msgpack::object const &o) const
Definition: cpp11_define_map.hpp:124
Definition: object_fwd.hpp:253
void msgpack_object(msgpack::object *o, msgpack::zone &) const
Definition: cpp03_define_map.hpp:92
void msgpack_object(msgpack::object *o, msgpack::zone &z) const
Definition: cpp11_define_map.hpp:137
Definition: cpp03_define_map.hpp:82
msgpack::object_map map
Definition: object_fwd.hpp:116
define_map make_define_map()
Definition: cpp03_define_map.hpp:2584
msgpack::object_str str
Definition: object_fwd.hpp:117
void msgpack_pack(Packer &pk) const
Definition: cpp03_define_map.hpp:84
Object class that corresponding to MessagePack format object.
Definition: object_fwd.hpp:106
msgpack::type::object_type type
Definition: object_fwd.hpp:122
msgpack::object key
Definition: object_fwd.hpp:256
uint32_t size
Definition: object_fwd.hpp:55
Definition: object_fwd.hpp:40
uint32_t size
Definition: object_fwd.hpp:60
void msgpack_unpack(msgpack::object const &o) const
Definition: cpp03_define_map.hpp:88
define_map(Args &... args)
Definition: cpp11_define_map.hpp:114