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