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