OSSIA
Open Scenario System for Interactive Application
value_variant_impl.hpp
1 
2 template <>
3 inline const float* value_variant_type::target() const
4 {
5  if(m_type == Type0)
6  return &m_impl.m_value0;
7  return nullptr;
8 }
9 template <>
10 inline const int32_t* value_variant_type::target() const
11 {
12  if(m_type == Type1)
13  return &m_impl.m_value1;
14  return nullptr;
15 }
16 template <>
17 inline const ossia::vec2f* value_variant_type::target() const
18 {
19  if(m_type == Type2)
20  return &m_impl.m_value2;
21  return nullptr;
22 }
23 template <>
24 inline const ossia::vec3f* value_variant_type::target() const
25 {
26  if(m_type == Type3)
27  return &m_impl.m_value3;
28  return nullptr;
29 }
30 template <>
31 inline const ossia::vec4f* value_variant_type::target() const
32 {
33  if(m_type == Type4)
34  return &m_impl.m_value4;
35  return nullptr;
36 }
37 template <>
38 inline const ossia::impulse* value_variant_type::target() const
39 {
40  if(m_type == Type5)
41  return &m_impl.m_value5;
42  return nullptr;
43 }
44 template <>
45 inline const bool* value_variant_type::target() const
46 {
47  if(m_type == Type6)
48  return &m_impl.m_value6;
49  return nullptr;
50 }
51 template <>
52 inline const std::string* value_variant_type::target() const
53 {
54  if(m_type == Type7)
55  return &m_impl.m_value7;
56  return nullptr;
57 }
58 template <>
59 inline const std::vector<ossia::value>* value_variant_type::target() const
60 {
61  if(m_type == Type8)
62  return &m_impl.m_value8;
63  return nullptr;
64 }
65 template <>
66 inline const value_map_type* value_variant_type::target() const
67 {
68  if(m_type == Type9)
69  return &m_impl.m_value9;
70  return nullptr;
71 }
72 template <>
73 inline float* value_variant_type::target()
74 {
75  if(m_type == Type0)
76  return &m_impl.m_value0;
77  return nullptr;
78 }
79 template <>
80 inline int32_t* value_variant_type::target()
81 {
82  if(m_type == Type1)
83  return &m_impl.m_value1;
84  return nullptr;
85 }
86 template <>
87 inline ossia::vec2f* value_variant_type::target()
88 {
89  if(m_type == Type2)
90  return &m_impl.m_value2;
91  return nullptr;
92 }
93 template <>
94 inline ossia::vec3f* value_variant_type::target()
95 {
96  if(m_type == Type3)
97  return &m_impl.m_value3;
98  return nullptr;
99 }
100 template <>
101 inline ossia::vec4f* value_variant_type::target()
102 {
103  if(m_type == Type4)
104  return &m_impl.m_value4;
105  return nullptr;
106 }
107 template <>
108 inline ossia::impulse* value_variant_type::target()
109 {
110  if(m_type == Type5)
111  return &m_impl.m_value5;
112  return nullptr;
113 }
114 template <>
115 inline bool* value_variant_type::target()
116 {
117  if(m_type == Type6)
118  return &m_impl.m_value6;
119  return nullptr;
120 }
121 template <>
122 inline std::string* value_variant_type::target()
123 {
124  if(m_type == Type7)
125  return &m_impl.m_value7;
126  return nullptr;
127 }
128 template <>
129 inline std::vector<ossia::value>* value_variant_type::target()
130 {
131  if(m_type == Type8)
132  return &m_impl.m_value8;
133  return nullptr;
134 }
135 template <>
136 inline value_map_type* value_variant_type::target()
137 {
138  if(m_type == Type9)
139  return &m_impl.m_value9;
140  return nullptr;
141 }
142 template <>
143 inline const float& value_variant_type::get() const
144 {
145  if(m_type == Type0)
146  return m_impl.m_value0;
147  ossia_do_throw(std::runtime_error, "value_variant: bad type");
148 }
149 template <>
150 inline const int32_t& value_variant_type::get() const
151 {
152  if(m_type == Type1)
153  return m_impl.m_value1;
154  ossia_do_throw(std::runtime_error, "value_variant: bad type");
155 }
156 template <>
157 inline const ossia::vec2f& value_variant_type::get() const
158 {
159  if(m_type == Type2)
160  return m_impl.m_value2;
161  ossia_do_throw(std::runtime_error, "value_variant: bad type");
162 }
163 template <>
164 inline const ossia::vec3f& value_variant_type::get() const
165 {
166  if(m_type == Type3)
167  return m_impl.m_value3;
168  ossia_do_throw(std::runtime_error, "value_variant: bad type");
169 }
170 template <>
171 inline const ossia::vec4f& value_variant_type::get() const
172 {
173  if(m_type == Type4)
174  return m_impl.m_value4;
175  ossia_do_throw(std::runtime_error, "value_variant: bad type");
176 }
177 template <>
178 inline const ossia::impulse& value_variant_type::get() const
179 {
180  if(m_type == Type5)
181  return m_impl.m_value5;
182  ossia_do_throw(std::runtime_error, "value_variant: bad type");
183 }
184 template <>
185 inline const bool& value_variant_type::get() const
186 {
187  if(m_type == Type6)
188  return m_impl.m_value6;
189  ossia_do_throw(std::runtime_error, "value_variant: bad type");
190 }
191 template <>
192 inline const std::string& value_variant_type::get() const
193 {
194  if(m_type == Type7)
195  return m_impl.m_value7;
196  ossia_do_throw(std::runtime_error, "value_variant: bad type");
197 }
198 template <>
199 inline const std::vector<ossia::value>& value_variant_type::get() const
200 {
201  if(m_type == Type8)
202  return m_impl.m_value8;
203  ossia_do_throw(std::runtime_error, "value_variant: bad type");
204 }
205 template <>
206 inline const value_map_type& value_variant_type::get() const
207 {
208  if(m_type == Type9)
209  return m_impl.m_value9;
210  ossia_do_throw(std::runtime_error, "value_variant: bad type");
211 }
212 template <>
213 inline float& value_variant_type::get()
214 {
215  if(m_type == Type0)
216  return m_impl.m_value0;
217  ossia_do_throw(std::runtime_error, "value_variant: bad type");
218 }
219 template <>
220 inline int32_t& value_variant_type::get()
221 {
222  if(m_type == Type1)
223  return m_impl.m_value1;
224  ossia_do_throw(std::runtime_error, "value_variant: bad type");
225 }
226 template <>
227 inline ossia::vec2f& value_variant_type::get()
228 {
229  if(m_type == Type2)
230  return m_impl.m_value2;
231  ossia_do_throw(std::runtime_error, "value_variant: bad type");
232 }
233 template <>
234 inline ossia::vec3f& value_variant_type::get()
235 {
236  if(m_type == Type3)
237  return m_impl.m_value3;
238  ossia_do_throw(std::runtime_error, "value_variant: bad type");
239 }
240 template <>
241 inline ossia::vec4f& value_variant_type::get()
242 {
243  if(m_type == Type4)
244  return m_impl.m_value4;
245  ossia_do_throw(std::runtime_error, "value_variant: bad type");
246 }
247 template <>
248 inline ossia::impulse& value_variant_type::get()
249 {
250  if(m_type == Type5)
251  return m_impl.m_value5;
252  ossia_do_throw(std::runtime_error, "value_variant: bad type");
253 }
254 template <>
255 inline bool& value_variant_type::get()
256 {
257  if(m_type == Type6)
258  return m_impl.m_value6;
259  ossia_do_throw(std::runtime_error, "value_variant: bad type");
260 }
261 template <>
262 inline std::string& value_variant_type::get()
263 {
264  if(m_type == Type7)
265  return m_impl.m_value7;
266  ossia_do_throw(std::runtime_error, "value_variant: bad type");
267 }
268 template <>
269 inline std::vector<ossia::value>& value_variant_type::get()
270 {
271  if(m_type == Type8)
272  return m_impl.m_value8;
273  ossia_do_throw(std::runtime_error, "value_variant: bad type");
274 }
275 template <>
276 inline value_map_type& value_variant_type::get()
277 {
278  if(m_type == Type9)
279  return m_impl.m_value9;
280  ossia_do_throw(std::runtime_error, "value_variant: bad type");
281 }
282 template <typename Visitor>
283 auto apply_nonnull(Visitor&& functor, const value_variant_type& var)
284 {
285  switch(var.m_type)
286  {
287  case value_variant_type::Type::Type0:
288  return functor(var.m_impl.m_value0);
289  case value_variant_type::Type::Type1:
290  return functor(var.m_impl.m_value1);
291  case value_variant_type::Type::Type2:
292  return functor(var.m_impl.m_value2);
293  case value_variant_type::Type::Type3:
294  return functor(var.m_impl.m_value3);
295  case value_variant_type::Type::Type4:
296  return functor(var.m_impl.m_value4);
297  case value_variant_type::Type::Type5:
298  return functor(var.m_impl.m_value5);
299  case value_variant_type::Type::Type6:
300  return functor(var.m_impl.m_value6);
301  case value_variant_type::Type::Type7:
302  return functor(var.m_impl.m_value7);
303  case value_variant_type::Type::Type8:
304  return functor(var.m_impl.m_value8);
305  case value_variant_type::Type::Type9:
306  return functor(var.m_impl.m_value9);
307  default:
308  ossia_do_throw(std::runtime_error, "value_variant: bad type");
309  }
310 }
311 template <typename Visitor>
312 auto apply_nonnull(Visitor&& functor, value_variant_type& var)
313 {
314  switch(var.m_type)
315  {
316  case value_variant_type::Type::Type0:
317  return functor(var.m_impl.m_value0);
318  case value_variant_type::Type::Type1:
319  return functor(var.m_impl.m_value1);
320  case value_variant_type::Type::Type2:
321  return functor(var.m_impl.m_value2);
322  case value_variant_type::Type::Type3:
323  return functor(var.m_impl.m_value3);
324  case value_variant_type::Type::Type4:
325  return functor(var.m_impl.m_value4);
326  case value_variant_type::Type::Type5:
327  return functor(var.m_impl.m_value5);
328  case value_variant_type::Type::Type6:
329  return functor(var.m_impl.m_value6);
330  case value_variant_type::Type::Type7:
331  return functor(var.m_impl.m_value7);
332  case value_variant_type::Type::Type8:
333  return functor(var.m_impl.m_value8);
334  case value_variant_type::Type::Type9:
335  return functor(var.m_impl.m_value9);
336  default:
337  ossia_do_throw(std::runtime_error, "value_variant: bad type");
338  }
339 }
340 template <typename Visitor>
341 auto apply_nonnull(Visitor&& functor, value_variant_type&& var)
342 {
343  switch(var.m_type)
344  {
345  case value_variant_type::Type::Type0:
346  return functor(std::move(var.m_impl.m_value0));
347  case value_variant_type::Type::Type1:
348  return functor(std::move(var.m_impl.m_value1));
349  case value_variant_type::Type::Type2:
350  return functor(std::move(var.m_impl.m_value2));
351  case value_variant_type::Type::Type3:
352  return functor(std::move(var.m_impl.m_value3));
353  case value_variant_type::Type::Type4:
354  return functor(std::move(var.m_impl.m_value4));
355  case value_variant_type::Type::Type5:
356  return functor(std::move(var.m_impl.m_value5));
357  case value_variant_type::Type::Type6:
358  return functor(std::move(var.m_impl.m_value6));
359  case value_variant_type::Type::Type7:
360  return functor(std::move(var.m_impl.m_value7));
361  case value_variant_type::Type::Type8:
362  return functor(std::move(var.m_impl.m_value8));
363  case value_variant_type::Type::Type9:
364  return functor(std::move(var.m_impl.m_value9));
365  default:
366  ossia_do_throw(std::runtime_error, "value_variant: bad type");
367  }
368 }
369 template <typename Visitor>
370 auto apply(Visitor&& functor, const value_variant_type& var)
371 {
372  switch(var.m_type)
373  {
374  case value_variant_type::Type::Type0:
375  return functor(var.m_impl.m_value0);
376  case value_variant_type::Type::Type1:
377  return functor(var.m_impl.m_value1);
378  case value_variant_type::Type::Type2:
379  return functor(var.m_impl.m_value2);
380  case value_variant_type::Type::Type3:
381  return functor(var.m_impl.m_value3);
382  case value_variant_type::Type::Type4:
383  return functor(var.m_impl.m_value4);
384  case value_variant_type::Type::Type5:
385  return functor(var.m_impl.m_value5);
386  case value_variant_type::Type::Type6:
387  return functor(var.m_impl.m_value6);
388  case value_variant_type::Type::Type7:
389  return functor(var.m_impl.m_value7);
390  case value_variant_type::Type::Type8:
391  return functor(var.m_impl.m_value8);
392  case value_variant_type::Type::Type9:
393  return functor(var.m_impl.m_value9);
394  default:
395  return functor();
396  }
397 }
398 template <typename Visitor>
399 auto apply(Visitor&& functor, value_variant_type& var)
400 {
401  switch(var.m_type)
402  {
403  case value_variant_type::Type::Type0:
404  return functor(var.m_impl.m_value0);
405  case value_variant_type::Type::Type1:
406  return functor(var.m_impl.m_value1);
407  case value_variant_type::Type::Type2:
408  return functor(var.m_impl.m_value2);
409  case value_variant_type::Type::Type3:
410  return functor(var.m_impl.m_value3);
411  case value_variant_type::Type::Type4:
412  return functor(var.m_impl.m_value4);
413  case value_variant_type::Type::Type5:
414  return functor(var.m_impl.m_value5);
415  case value_variant_type::Type::Type6:
416  return functor(var.m_impl.m_value6);
417  case value_variant_type::Type::Type7:
418  return functor(var.m_impl.m_value7);
419  case value_variant_type::Type::Type8:
420  return functor(var.m_impl.m_value8);
421  case value_variant_type::Type::Type9:
422  return functor(var.m_impl.m_value9);
423  default:
424  return functor();
425  }
426 }
427 template <typename Visitor>
428 auto apply(Visitor&& functor, value_variant_type&& var)
429 {
430  switch(var.m_type)
431  {
432  case value_variant_type::Type::Type0:
433  return functor(std::move(var.m_impl.m_value0));
434  case value_variant_type::Type::Type1:
435  return functor(std::move(var.m_impl.m_value1));
436  case value_variant_type::Type::Type2:
437  return functor(std::move(var.m_impl.m_value2));
438  case value_variant_type::Type::Type3:
439  return functor(std::move(var.m_impl.m_value3));
440  case value_variant_type::Type::Type4:
441  return functor(std::move(var.m_impl.m_value4));
442  case value_variant_type::Type::Type5:
443  return functor(std::move(var.m_impl.m_value5));
444  case value_variant_type::Type::Type6:
445  return functor(std::move(var.m_impl.m_value6));
446  case value_variant_type::Type::Type7:
447  return functor(std::move(var.m_impl.m_value7));
448  case value_variant_type::Type::Type8:
449  return functor(std::move(var.m_impl.m_value8));
450  case value_variant_type::Type::Type9:
451  return functor(std::move(var.m_impl.m_value9));
452  default:
453  return functor();
454  }
455 }
456 template <typename Functor>
457 auto apply(Functor&& functor, value_variant_type& arg0, const value_variant_type& arg1)
458 {
459  switch(arg0.m_type)
460  {
461  case value_variant_type::Type::Type0: {
462  switch(arg1.m_type)
463  {
464  case value_variant_type::Type::Type0: {
465  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value0);
466  }
467  case value_variant_type::Type::Type1: {
468  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value1);
469  }
470  case value_variant_type::Type::Type2: {
471  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value2);
472  }
473  case value_variant_type::Type::Type3: {
474  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value3);
475  }
476  case value_variant_type::Type::Type4: {
477  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value4);
478  }
479  case value_variant_type::Type::Type5: {
480  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value5);
481  }
482  case value_variant_type::Type::Type6: {
483  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value6);
484  }
485  case value_variant_type::Type::Type7: {
486  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value7);
487  }
488  case value_variant_type::Type::Type8: {
489  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value8);
490  }
491  case value_variant_type::Type::Type9: {
492  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value9);
493  }
494  default:
495  ossia_do_throw(std::runtime_error, "value_variant: bad type");
496  }
497  }
498  case value_variant_type::Type::Type1: {
499  switch(arg1.m_type)
500  {
501  case value_variant_type::Type::Type0: {
502  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value0);
503  }
504  case value_variant_type::Type::Type1: {
505  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value1);
506  }
507  case value_variant_type::Type::Type2: {
508  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value2);
509  }
510  case value_variant_type::Type::Type3: {
511  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value3);
512  }
513  case value_variant_type::Type::Type4: {
514  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value4);
515  }
516  case value_variant_type::Type::Type5: {
517  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value5);
518  }
519  case value_variant_type::Type::Type6: {
520  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value6);
521  }
522  case value_variant_type::Type::Type7: {
523  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value7);
524  }
525  case value_variant_type::Type::Type8: {
526  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value8);
527  }
528  case value_variant_type::Type::Type9: {
529  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value9);
530  }
531  default:
532  ossia_do_throw(std::runtime_error, "value_variant: bad type");
533  }
534  }
535  case value_variant_type::Type::Type2: {
536  switch(arg1.m_type)
537  {
538  case value_variant_type::Type::Type0: {
539  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value0);
540  }
541  case value_variant_type::Type::Type1: {
542  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value1);
543  }
544  case value_variant_type::Type::Type2: {
545  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value2);
546  }
547  case value_variant_type::Type::Type3: {
548  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value3);
549  }
550  case value_variant_type::Type::Type4: {
551  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value4);
552  }
553  case value_variant_type::Type::Type5: {
554  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value5);
555  }
556  case value_variant_type::Type::Type6: {
557  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value6);
558  }
559  case value_variant_type::Type::Type7: {
560  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value7);
561  }
562  case value_variant_type::Type::Type8: {
563  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value8);
564  }
565  case value_variant_type::Type::Type9: {
566  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value9);
567  }
568  default:
569  ossia_do_throw(std::runtime_error, "value_variant: bad type");
570  }
571  }
572  case value_variant_type::Type::Type3: {
573  switch(arg1.m_type)
574  {
575  case value_variant_type::Type::Type0: {
576  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value0);
577  }
578  case value_variant_type::Type::Type1: {
579  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value1);
580  }
581  case value_variant_type::Type::Type2: {
582  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value2);
583  }
584  case value_variant_type::Type::Type3: {
585  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value3);
586  }
587  case value_variant_type::Type::Type4: {
588  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value4);
589  }
590  case value_variant_type::Type::Type5: {
591  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value5);
592  }
593  case value_variant_type::Type::Type6: {
594  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value6);
595  }
596  case value_variant_type::Type::Type7: {
597  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value7);
598  }
599  case value_variant_type::Type::Type8: {
600  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value8);
601  }
602  case value_variant_type::Type::Type9: {
603  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value9);
604  }
605  default:
606  ossia_do_throw(std::runtime_error, "value_variant: bad type");
607  }
608  }
609  case value_variant_type::Type::Type4: {
610  switch(arg1.m_type)
611  {
612  case value_variant_type::Type::Type0: {
613  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value0);
614  }
615  case value_variant_type::Type::Type1: {
616  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value1);
617  }
618  case value_variant_type::Type::Type2: {
619  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value2);
620  }
621  case value_variant_type::Type::Type3: {
622  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value3);
623  }
624  case value_variant_type::Type::Type4: {
625  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value4);
626  }
627  case value_variant_type::Type::Type5: {
628  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value5);
629  }
630  case value_variant_type::Type::Type6: {
631  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value6);
632  }
633  case value_variant_type::Type::Type7: {
634  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value7);
635  }
636  case value_variant_type::Type::Type8: {
637  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value8);
638  }
639  case value_variant_type::Type::Type9: {
640  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value9);
641  }
642  default:
643  ossia_do_throw(std::runtime_error, "value_variant: bad type");
644  }
645  }
646  case value_variant_type::Type::Type5: {
647  switch(arg1.m_type)
648  {
649  case value_variant_type::Type::Type0: {
650  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value0);
651  }
652  case value_variant_type::Type::Type1: {
653  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value1);
654  }
655  case value_variant_type::Type::Type2: {
656  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value2);
657  }
658  case value_variant_type::Type::Type3: {
659  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value3);
660  }
661  case value_variant_type::Type::Type4: {
662  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value4);
663  }
664  case value_variant_type::Type::Type5: {
665  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value5);
666  }
667  case value_variant_type::Type::Type6: {
668  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value6);
669  }
670  case value_variant_type::Type::Type7: {
671  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value7);
672  }
673  case value_variant_type::Type::Type8: {
674  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value8);
675  }
676  case value_variant_type::Type::Type9: {
677  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value9);
678  }
679  default:
680  ossia_do_throw(std::runtime_error, "value_variant: bad type");
681  }
682  }
683  case value_variant_type::Type::Type6: {
684  switch(arg1.m_type)
685  {
686  case value_variant_type::Type::Type0: {
687  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value0);
688  }
689  case value_variant_type::Type::Type1: {
690  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value1);
691  }
692  case value_variant_type::Type::Type2: {
693  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value2);
694  }
695  case value_variant_type::Type::Type3: {
696  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value3);
697  }
698  case value_variant_type::Type::Type4: {
699  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value4);
700  }
701  case value_variant_type::Type::Type5: {
702  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value5);
703  }
704  case value_variant_type::Type::Type6: {
705  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value6);
706  }
707  case value_variant_type::Type::Type7: {
708  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value7);
709  }
710  case value_variant_type::Type::Type8: {
711  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value8);
712  }
713  case value_variant_type::Type::Type9: {
714  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value9);
715  }
716  default:
717  ossia_do_throw(std::runtime_error, "value_variant: bad type");
718  }
719  }
720  case value_variant_type::Type::Type7: {
721  switch(arg1.m_type)
722  {
723  case value_variant_type::Type::Type0: {
724  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value0);
725  }
726  case value_variant_type::Type::Type1: {
727  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value1);
728  }
729  case value_variant_type::Type::Type2: {
730  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value2);
731  }
732  case value_variant_type::Type::Type3: {
733  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value3);
734  }
735  case value_variant_type::Type::Type4: {
736  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value4);
737  }
738  case value_variant_type::Type::Type5: {
739  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value5);
740  }
741  case value_variant_type::Type::Type6: {
742  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value6);
743  }
744  case value_variant_type::Type::Type7: {
745  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value7);
746  }
747  case value_variant_type::Type::Type8: {
748  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value8);
749  }
750  case value_variant_type::Type::Type9: {
751  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value9);
752  }
753  default:
754  ossia_do_throw(std::runtime_error, "value_variant: bad type");
755  }
756  }
757  case value_variant_type::Type::Type8: {
758  switch(arg1.m_type)
759  {
760  case value_variant_type::Type::Type0: {
761  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value0);
762  }
763  case value_variant_type::Type::Type1: {
764  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value1);
765  }
766  case value_variant_type::Type::Type2: {
767  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value2);
768  }
769  case value_variant_type::Type::Type3: {
770  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value3);
771  }
772  case value_variant_type::Type::Type4: {
773  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value4);
774  }
775  case value_variant_type::Type::Type5: {
776  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value5);
777  }
778  case value_variant_type::Type::Type6: {
779  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value6);
780  }
781  case value_variant_type::Type::Type7: {
782  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value7);
783  }
784  case value_variant_type::Type::Type8: {
785  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value8);
786  }
787  case value_variant_type::Type::Type9: {
788  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value9);
789  }
790  default:
791  ossia_do_throw(std::runtime_error, "value_variant: bad type");
792  }
793  }
794  case value_variant_type::Type::Type9: {
795  switch(arg1.m_type)
796  {
797  case value_variant_type::Type::Type0: {
798  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value0);
799  }
800  case value_variant_type::Type::Type1: {
801  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value1);
802  }
803  case value_variant_type::Type::Type2: {
804  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value2);
805  }
806  case value_variant_type::Type::Type3: {
807  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value3);
808  }
809  case value_variant_type::Type::Type4: {
810  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value4);
811  }
812  case value_variant_type::Type::Type5: {
813  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value5);
814  }
815  case value_variant_type::Type::Type6: {
816  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value6);
817  }
818  case value_variant_type::Type::Type7: {
819  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value7);
820  }
821  case value_variant_type::Type::Type8: {
822  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value8);
823  }
824  case value_variant_type::Type::Type9: {
825  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value9);
826  }
827  default:
828  ossia_do_throw(std::runtime_error, "value_variant: bad type");
829  }
830  }
831  default:
832  ossia_do_throw(std::runtime_error, "value_variant: bad type");
833  }
834 }
835 template <typename Functor>
836 auto apply(Functor&& functor, const value_variant_type& arg0, value_variant_type& arg1)
837 {
838  switch(arg0.m_type)
839  {
840  case value_variant_type::Type::Type0: {
841  switch(arg1.m_type)
842  {
843  case value_variant_type::Type::Type0: {
844  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value0);
845  }
846  case value_variant_type::Type::Type1: {
847  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value1);
848  }
849  case value_variant_type::Type::Type2: {
850  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value2);
851  }
852  case value_variant_type::Type::Type3: {
853  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value3);
854  }
855  case value_variant_type::Type::Type4: {
856  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value4);
857  }
858  case value_variant_type::Type::Type5: {
859  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value5);
860  }
861  case value_variant_type::Type::Type6: {
862  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value6);
863  }
864  case value_variant_type::Type::Type7: {
865  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value7);
866  }
867  case value_variant_type::Type::Type8: {
868  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value8);
869  }
870  case value_variant_type::Type::Type9: {
871  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value9);
872  }
873  default:
874  ossia_do_throw(std::runtime_error, "value_variant: bad type");
875  }
876  }
877  case value_variant_type::Type::Type1: {
878  switch(arg1.m_type)
879  {
880  case value_variant_type::Type::Type0: {
881  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value0);
882  }
883  case value_variant_type::Type::Type1: {
884  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value1);
885  }
886  case value_variant_type::Type::Type2: {
887  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value2);
888  }
889  case value_variant_type::Type::Type3: {
890  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value3);
891  }
892  case value_variant_type::Type::Type4: {
893  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value4);
894  }
895  case value_variant_type::Type::Type5: {
896  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value5);
897  }
898  case value_variant_type::Type::Type6: {
899  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value6);
900  }
901  case value_variant_type::Type::Type7: {
902  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value7);
903  }
904  case value_variant_type::Type::Type8: {
905  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value8);
906  }
907  case value_variant_type::Type::Type9: {
908  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value9);
909  }
910  default:
911  ossia_do_throw(std::runtime_error, "value_variant: bad type");
912  }
913  }
914  case value_variant_type::Type::Type2: {
915  switch(arg1.m_type)
916  {
917  case value_variant_type::Type::Type0: {
918  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value0);
919  }
920  case value_variant_type::Type::Type1: {
921  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value1);
922  }
923  case value_variant_type::Type::Type2: {
924  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value2);
925  }
926  case value_variant_type::Type::Type3: {
927  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value3);
928  }
929  case value_variant_type::Type::Type4: {
930  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value4);
931  }
932  case value_variant_type::Type::Type5: {
933  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value5);
934  }
935  case value_variant_type::Type::Type6: {
936  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value6);
937  }
938  case value_variant_type::Type::Type7: {
939  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value7);
940  }
941  case value_variant_type::Type::Type8: {
942  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value8);
943  }
944  case value_variant_type::Type::Type9: {
945  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value9);
946  }
947  default:
948  ossia_do_throw(std::runtime_error, "value_variant: bad type");
949  }
950  }
951  case value_variant_type::Type::Type3: {
952  switch(arg1.m_type)
953  {
954  case value_variant_type::Type::Type0: {
955  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value0);
956  }
957  case value_variant_type::Type::Type1: {
958  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value1);
959  }
960  case value_variant_type::Type::Type2: {
961  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value2);
962  }
963  case value_variant_type::Type::Type3: {
964  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value3);
965  }
966  case value_variant_type::Type::Type4: {
967  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value4);
968  }
969  case value_variant_type::Type::Type5: {
970  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value5);
971  }
972  case value_variant_type::Type::Type6: {
973  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value6);
974  }
975  case value_variant_type::Type::Type7: {
976  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value7);
977  }
978  case value_variant_type::Type::Type8: {
979  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value8);
980  }
981  case value_variant_type::Type::Type9: {
982  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value9);
983  }
984  default:
985  ossia_do_throw(std::runtime_error, "value_variant: bad type");
986  }
987  }
988  case value_variant_type::Type::Type4: {
989  switch(arg1.m_type)
990  {
991  case value_variant_type::Type::Type0: {
992  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value0);
993  }
994  case value_variant_type::Type::Type1: {
995  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value1);
996  }
997  case value_variant_type::Type::Type2: {
998  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value2);
999  }
1000  case value_variant_type::Type::Type3: {
1001  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value3);
1002  }
1003  case value_variant_type::Type::Type4: {
1004  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value4);
1005  }
1006  case value_variant_type::Type::Type5: {
1007  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value5);
1008  }
1009  case value_variant_type::Type::Type6: {
1010  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value6);
1011  }
1012  case value_variant_type::Type::Type7: {
1013  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value7);
1014  }
1015  case value_variant_type::Type::Type8: {
1016  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value8);
1017  }
1018  case value_variant_type::Type::Type9: {
1019  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value9);
1020  }
1021  default:
1022  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1023  }
1024  }
1025  case value_variant_type::Type::Type5: {
1026  switch(arg1.m_type)
1027  {
1028  case value_variant_type::Type::Type0: {
1029  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value0);
1030  }
1031  case value_variant_type::Type::Type1: {
1032  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value1);
1033  }
1034  case value_variant_type::Type::Type2: {
1035  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value2);
1036  }
1037  case value_variant_type::Type::Type3: {
1038  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value3);
1039  }
1040  case value_variant_type::Type::Type4: {
1041  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value4);
1042  }
1043  case value_variant_type::Type::Type5: {
1044  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value5);
1045  }
1046  case value_variant_type::Type::Type6: {
1047  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value6);
1048  }
1049  case value_variant_type::Type::Type7: {
1050  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value7);
1051  }
1052  case value_variant_type::Type::Type8: {
1053  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value8);
1054  }
1055  case value_variant_type::Type::Type9: {
1056  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value9);
1057  }
1058  default:
1059  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1060  }
1061  }
1062  case value_variant_type::Type::Type6: {
1063  switch(arg1.m_type)
1064  {
1065  case value_variant_type::Type::Type0: {
1066  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value0);
1067  }
1068  case value_variant_type::Type::Type1: {
1069  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value1);
1070  }
1071  case value_variant_type::Type::Type2: {
1072  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value2);
1073  }
1074  case value_variant_type::Type::Type3: {
1075  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value3);
1076  }
1077  case value_variant_type::Type::Type4: {
1078  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value4);
1079  }
1080  case value_variant_type::Type::Type5: {
1081  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value5);
1082  }
1083  case value_variant_type::Type::Type6: {
1084  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value6);
1085  }
1086  case value_variant_type::Type::Type7: {
1087  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value7);
1088  }
1089  case value_variant_type::Type::Type8: {
1090  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value8);
1091  }
1092  case value_variant_type::Type::Type9: {
1093  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value9);
1094  }
1095  default:
1096  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1097  }
1098  }
1099  case value_variant_type::Type::Type7: {
1100  switch(arg1.m_type)
1101  {
1102  case value_variant_type::Type::Type0: {
1103  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value0);
1104  }
1105  case value_variant_type::Type::Type1: {
1106  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value1);
1107  }
1108  case value_variant_type::Type::Type2: {
1109  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value2);
1110  }
1111  case value_variant_type::Type::Type3: {
1112  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value3);
1113  }
1114  case value_variant_type::Type::Type4: {
1115  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value4);
1116  }
1117  case value_variant_type::Type::Type5: {
1118  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value5);
1119  }
1120  case value_variant_type::Type::Type6: {
1121  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value6);
1122  }
1123  case value_variant_type::Type::Type7: {
1124  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value7);
1125  }
1126  case value_variant_type::Type::Type8: {
1127  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value8);
1128  }
1129  case value_variant_type::Type::Type9: {
1130  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value9);
1131  }
1132  default:
1133  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1134  }
1135  }
1136  case value_variant_type::Type::Type8: {
1137  switch(arg1.m_type)
1138  {
1139  case value_variant_type::Type::Type0: {
1140  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value0);
1141  }
1142  case value_variant_type::Type::Type1: {
1143  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value1);
1144  }
1145  case value_variant_type::Type::Type2: {
1146  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value2);
1147  }
1148  case value_variant_type::Type::Type3: {
1149  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value3);
1150  }
1151  case value_variant_type::Type::Type4: {
1152  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value4);
1153  }
1154  case value_variant_type::Type::Type5: {
1155  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value5);
1156  }
1157  case value_variant_type::Type::Type6: {
1158  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value6);
1159  }
1160  case value_variant_type::Type::Type7: {
1161  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value7);
1162  }
1163  case value_variant_type::Type::Type8: {
1164  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value8);
1165  }
1166  case value_variant_type::Type::Type9: {
1167  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value9);
1168  }
1169  default:
1170  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1171  }
1172  }
1173  case value_variant_type::Type::Type9: {
1174  switch(arg1.m_type)
1175  {
1176  case value_variant_type::Type::Type0: {
1177  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value0);
1178  }
1179  case value_variant_type::Type::Type1: {
1180  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value1);
1181  }
1182  case value_variant_type::Type::Type2: {
1183  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value2);
1184  }
1185  case value_variant_type::Type::Type3: {
1186  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value3);
1187  }
1188  case value_variant_type::Type::Type4: {
1189  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value4);
1190  }
1191  case value_variant_type::Type::Type5: {
1192  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value5);
1193  }
1194  case value_variant_type::Type::Type6: {
1195  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value6);
1196  }
1197  case value_variant_type::Type::Type7: {
1198  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value7);
1199  }
1200  case value_variant_type::Type::Type8: {
1201  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value8);
1202  }
1203  case value_variant_type::Type::Type9: {
1204  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value9);
1205  }
1206  default:
1207  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1208  }
1209  }
1210  default:
1211  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1212  }
1213 }
1214 template <typename Functor>
1215 auto apply(
1216  Functor&& functor, const value_variant_type& arg0, const value_variant_type& arg1)
1217 {
1218  switch(arg0.m_type)
1219  {
1220  case value_variant_type::Type::Type0: {
1221  switch(arg1.m_type)
1222  {
1223  case value_variant_type::Type::Type0: {
1224  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value0);
1225  }
1226  case value_variant_type::Type::Type1: {
1227  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value1);
1228  }
1229  case value_variant_type::Type::Type2: {
1230  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value2);
1231  }
1232  case value_variant_type::Type::Type3: {
1233  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value3);
1234  }
1235  case value_variant_type::Type::Type4: {
1236  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value4);
1237  }
1238  case value_variant_type::Type::Type5: {
1239  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value5);
1240  }
1241  case value_variant_type::Type::Type6: {
1242  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value6);
1243  }
1244  case value_variant_type::Type::Type7: {
1245  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value7);
1246  }
1247  case value_variant_type::Type::Type8: {
1248  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value8);
1249  }
1250  case value_variant_type::Type::Type9: {
1251  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value9);
1252  }
1253  default:
1254  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1255  }
1256  }
1257  case value_variant_type::Type::Type1: {
1258  switch(arg1.m_type)
1259  {
1260  case value_variant_type::Type::Type0: {
1261  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value0);
1262  }
1263  case value_variant_type::Type::Type1: {
1264  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value1);
1265  }
1266  case value_variant_type::Type::Type2: {
1267  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value2);
1268  }
1269  case value_variant_type::Type::Type3: {
1270  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value3);
1271  }
1272  case value_variant_type::Type::Type4: {
1273  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value4);
1274  }
1275  case value_variant_type::Type::Type5: {
1276  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value5);
1277  }
1278  case value_variant_type::Type::Type6: {
1279  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value6);
1280  }
1281  case value_variant_type::Type::Type7: {
1282  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value7);
1283  }
1284  case value_variant_type::Type::Type8: {
1285  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value8);
1286  }
1287  case value_variant_type::Type::Type9: {
1288  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value9);
1289  }
1290  default:
1291  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1292  }
1293  }
1294  case value_variant_type::Type::Type2: {
1295  switch(arg1.m_type)
1296  {
1297  case value_variant_type::Type::Type0: {
1298  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value0);
1299  }
1300  case value_variant_type::Type::Type1: {
1301  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value1);
1302  }
1303  case value_variant_type::Type::Type2: {
1304  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value2);
1305  }
1306  case value_variant_type::Type::Type3: {
1307  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value3);
1308  }
1309  case value_variant_type::Type::Type4: {
1310  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value4);
1311  }
1312  case value_variant_type::Type::Type5: {
1313  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value5);
1314  }
1315  case value_variant_type::Type::Type6: {
1316  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value6);
1317  }
1318  case value_variant_type::Type::Type7: {
1319  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value7);
1320  }
1321  case value_variant_type::Type::Type8: {
1322  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value8);
1323  }
1324  case value_variant_type::Type::Type9: {
1325  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value9);
1326  }
1327  default:
1328  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1329  }
1330  }
1331  case value_variant_type::Type::Type3: {
1332  switch(arg1.m_type)
1333  {
1334  case value_variant_type::Type::Type0: {
1335  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value0);
1336  }
1337  case value_variant_type::Type::Type1: {
1338  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value1);
1339  }
1340  case value_variant_type::Type::Type2: {
1341  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value2);
1342  }
1343  case value_variant_type::Type::Type3: {
1344  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value3);
1345  }
1346  case value_variant_type::Type::Type4: {
1347  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value4);
1348  }
1349  case value_variant_type::Type::Type5: {
1350  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value5);
1351  }
1352  case value_variant_type::Type::Type6: {
1353  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value6);
1354  }
1355  case value_variant_type::Type::Type7: {
1356  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value7);
1357  }
1358  case value_variant_type::Type::Type8: {
1359  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value8);
1360  }
1361  case value_variant_type::Type::Type9: {
1362  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value9);
1363  }
1364  default:
1365  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1366  }
1367  }
1368  case value_variant_type::Type::Type4: {
1369  switch(arg1.m_type)
1370  {
1371  case value_variant_type::Type::Type0: {
1372  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value0);
1373  }
1374  case value_variant_type::Type::Type1: {
1375  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value1);
1376  }
1377  case value_variant_type::Type::Type2: {
1378  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value2);
1379  }
1380  case value_variant_type::Type::Type3: {
1381  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value3);
1382  }
1383  case value_variant_type::Type::Type4: {
1384  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value4);
1385  }
1386  case value_variant_type::Type::Type5: {
1387  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value5);
1388  }
1389  case value_variant_type::Type::Type6: {
1390  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value6);
1391  }
1392  case value_variant_type::Type::Type7: {
1393  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value7);
1394  }
1395  case value_variant_type::Type::Type8: {
1396  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value8);
1397  }
1398  case value_variant_type::Type::Type9: {
1399  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value9);
1400  }
1401  default:
1402  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1403  }
1404  }
1405  case value_variant_type::Type::Type5: {
1406  switch(arg1.m_type)
1407  {
1408  case value_variant_type::Type::Type0: {
1409  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value0);
1410  }
1411  case value_variant_type::Type::Type1: {
1412  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value1);
1413  }
1414  case value_variant_type::Type::Type2: {
1415  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value2);
1416  }
1417  case value_variant_type::Type::Type3: {
1418  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value3);
1419  }
1420  case value_variant_type::Type::Type4: {
1421  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value4);
1422  }
1423  case value_variant_type::Type::Type5: {
1424  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value5);
1425  }
1426  case value_variant_type::Type::Type6: {
1427  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value6);
1428  }
1429  case value_variant_type::Type::Type7: {
1430  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value7);
1431  }
1432  case value_variant_type::Type::Type8: {
1433  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value8);
1434  }
1435  case value_variant_type::Type::Type9: {
1436  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value9);
1437  }
1438  default:
1439  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1440  }
1441  }
1442  case value_variant_type::Type::Type6: {
1443  switch(arg1.m_type)
1444  {
1445  case value_variant_type::Type::Type0: {
1446  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value0);
1447  }
1448  case value_variant_type::Type::Type1: {
1449  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value1);
1450  }
1451  case value_variant_type::Type::Type2: {
1452  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value2);
1453  }
1454  case value_variant_type::Type::Type3: {
1455  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value3);
1456  }
1457  case value_variant_type::Type::Type4: {
1458  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value4);
1459  }
1460  case value_variant_type::Type::Type5: {
1461  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value5);
1462  }
1463  case value_variant_type::Type::Type6: {
1464  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value6);
1465  }
1466  case value_variant_type::Type::Type7: {
1467  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value7);
1468  }
1469  case value_variant_type::Type::Type8: {
1470  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value8);
1471  }
1472  case value_variant_type::Type::Type9: {
1473  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value9);
1474  }
1475  default:
1476  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1477  }
1478  }
1479  case value_variant_type::Type::Type7: {
1480  switch(arg1.m_type)
1481  {
1482  case value_variant_type::Type::Type0: {
1483  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value0);
1484  }
1485  case value_variant_type::Type::Type1: {
1486  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value1);
1487  }
1488  case value_variant_type::Type::Type2: {
1489  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value2);
1490  }
1491  case value_variant_type::Type::Type3: {
1492  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value3);
1493  }
1494  case value_variant_type::Type::Type4: {
1495  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value4);
1496  }
1497  case value_variant_type::Type::Type5: {
1498  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value5);
1499  }
1500  case value_variant_type::Type::Type6: {
1501  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value6);
1502  }
1503  case value_variant_type::Type::Type7: {
1504  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value7);
1505  }
1506  case value_variant_type::Type::Type8: {
1507  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value8);
1508  }
1509  case value_variant_type::Type::Type9: {
1510  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value9);
1511  }
1512  default:
1513  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1514  }
1515  }
1516  case value_variant_type::Type::Type8: {
1517  switch(arg1.m_type)
1518  {
1519  case value_variant_type::Type::Type0: {
1520  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value0);
1521  }
1522  case value_variant_type::Type::Type1: {
1523  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value1);
1524  }
1525  case value_variant_type::Type::Type2: {
1526  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value2);
1527  }
1528  case value_variant_type::Type::Type3: {
1529  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value3);
1530  }
1531  case value_variant_type::Type::Type4: {
1532  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value4);
1533  }
1534  case value_variant_type::Type::Type5: {
1535  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value5);
1536  }
1537  case value_variant_type::Type::Type6: {
1538  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value6);
1539  }
1540  case value_variant_type::Type::Type7: {
1541  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value7);
1542  }
1543  case value_variant_type::Type::Type8: {
1544  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value8);
1545  }
1546  case value_variant_type::Type::Type9: {
1547  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value9);
1548  }
1549  default:
1550  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1551  }
1552  }
1553  case value_variant_type::Type::Type9: {
1554  switch(arg1.m_type)
1555  {
1556  case value_variant_type::Type::Type0: {
1557  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value0);
1558  }
1559  case value_variant_type::Type::Type1: {
1560  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value1);
1561  }
1562  case value_variant_type::Type::Type2: {
1563  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value2);
1564  }
1565  case value_variant_type::Type::Type3: {
1566  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value3);
1567  }
1568  case value_variant_type::Type::Type4: {
1569  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value4);
1570  }
1571  case value_variant_type::Type::Type5: {
1572  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value5);
1573  }
1574  case value_variant_type::Type::Type6: {
1575  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value6);
1576  }
1577  case value_variant_type::Type::Type7: {
1578  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value7);
1579  }
1580  case value_variant_type::Type::Type8: {
1581  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value8);
1582  }
1583  case value_variant_type::Type::Type9: {
1584  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value9);
1585  }
1586  default:
1587  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1588  }
1589  }
1590  default:
1591  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1592  }
1593 }
1594 template <typename Functor>
1595 auto apply(Functor&& functor, value_variant_type&& arg0, value_variant_type&& arg1)
1596 {
1597  switch(arg0.m_type)
1598  {
1599  case value_variant_type::Type::Type0: {
1600  switch(arg1.m_type)
1601  {
1602  case value_variant_type::Type::Type0: {
1603  return functor(
1604  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value0));
1605  }
1606  case value_variant_type::Type::Type1: {
1607  return functor(
1608  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value1));
1609  }
1610  case value_variant_type::Type::Type2: {
1611  return functor(
1612  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value2));
1613  }
1614  case value_variant_type::Type::Type3: {
1615  return functor(
1616  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value3));
1617  }
1618  case value_variant_type::Type::Type4: {
1619  return functor(
1620  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value4));
1621  }
1622  case value_variant_type::Type::Type5: {
1623  return functor(
1624  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value5));
1625  }
1626  case value_variant_type::Type::Type6: {
1627  return functor(
1628  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value6));
1629  }
1630  case value_variant_type::Type::Type7: {
1631  return functor(
1632  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value7));
1633  }
1634  case value_variant_type::Type::Type8: {
1635  return functor(
1636  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value8));
1637  }
1638  case value_variant_type::Type::Type9: {
1639  return functor(
1640  std::move(arg0.m_impl.m_value0), std::move(arg1.m_impl.m_value9));
1641  }
1642  default:
1643  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1644  }
1645  }
1646  case value_variant_type::Type::Type1: {
1647  switch(arg1.m_type)
1648  {
1649  case value_variant_type::Type::Type0: {
1650  return functor(
1651  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value0));
1652  }
1653  case value_variant_type::Type::Type1: {
1654  return functor(
1655  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value1));
1656  }
1657  case value_variant_type::Type::Type2: {
1658  return functor(
1659  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value2));
1660  }
1661  case value_variant_type::Type::Type3: {
1662  return functor(
1663  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value3));
1664  }
1665  case value_variant_type::Type::Type4: {
1666  return functor(
1667  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value4));
1668  }
1669  case value_variant_type::Type::Type5: {
1670  return functor(
1671  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value5));
1672  }
1673  case value_variant_type::Type::Type6: {
1674  return functor(
1675  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value6));
1676  }
1677  case value_variant_type::Type::Type7: {
1678  return functor(
1679  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value7));
1680  }
1681  case value_variant_type::Type::Type8: {
1682  return functor(
1683  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value8));
1684  }
1685  case value_variant_type::Type::Type9: {
1686  return functor(
1687  std::move(arg0.m_impl.m_value1), std::move(arg1.m_impl.m_value9));
1688  }
1689  default:
1690  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1691  }
1692  }
1693  case value_variant_type::Type::Type2: {
1694  switch(arg1.m_type)
1695  {
1696  case value_variant_type::Type::Type0: {
1697  return functor(
1698  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value0));
1699  }
1700  case value_variant_type::Type::Type1: {
1701  return functor(
1702  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value1));
1703  }
1704  case value_variant_type::Type::Type2: {
1705  return functor(
1706  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value2));
1707  }
1708  case value_variant_type::Type::Type3: {
1709  return functor(
1710  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value3));
1711  }
1712  case value_variant_type::Type::Type4: {
1713  return functor(
1714  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value4));
1715  }
1716  case value_variant_type::Type::Type5: {
1717  return functor(
1718  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value5));
1719  }
1720  case value_variant_type::Type::Type6: {
1721  return functor(
1722  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value6));
1723  }
1724  case value_variant_type::Type::Type7: {
1725  return functor(
1726  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value7));
1727  }
1728  case value_variant_type::Type::Type8: {
1729  return functor(
1730  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value8));
1731  }
1732  case value_variant_type::Type::Type9: {
1733  return functor(
1734  std::move(arg0.m_impl.m_value2), std::move(arg1.m_impl.m_value9));
1735  }
1736  default:
1737  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1738  }
1739  }
1740  case value_variant_type::Type::Type3: {
1741  switch(arg1.m_type)
1742  {
1743  case value_variant_type::Type::Type0: {
1744  return functor(
1745  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value0));
1746  }
1747  case value_variant_type::Type::Type1: {
1748  return functor(
1749  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value1));
1750  }
1751  case value_variant_type::Type::Type2: {
1752  return functor(
1753  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value2));
1754  }
1755  case value_variant_type::Type::Type3: {
1756  return functor(
1757  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value3));
1758  }
1759  case value_variant_type::Type::Type4: {
1760  return functor(
1761  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value4));
1762  }
1763  case value_variant_type::Type::Type5: {
1764  return functor(
1765  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value5));
1766  }
1767  case value_variant_type::Type::Type6: {
1768  return functor(
1769  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value6));
1770  }
1771  case value_variant_type::Type::Type7: {
1772  return functor(
1773  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value7));
1774  }
1775  case value_variant_type::Type::Type8: {
1776  return functor(
1777  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value8));
1778  }
1779  case value_variant_type::Type::Type9: {
1780  return functor(
1781  std::move(arg0.m_impl.m_value3), std::move(arg1.m_impl.m_value9));
1782  }
1783  default:
1784  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1785  }
1786  }
1787  case value_variant_type::Type::Type4: {
1788  switch(arg1.m_type)
1789  {
1790  case value_variant_type::Type::Type0: {
1791  return functor(
1792  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value0));
1793  }
1794  case value_variant_type::Type::Type1: {
1795  return functor(
1796  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value1));
1797  }
1798  case value_variant_type::Type::Type2: {
1799  return functor(
1800  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value2));
1801  }
1802  case value_variant_type::Type::Type3: {
1803  return functor(
1804  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value3));
1805  }
1806  case value_variant_type::Type::Type4: {
1807  return functor(
1808  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value4));
1809  }
1810  case value_variant_type::Type::Type5: {
1811  return functor(
1812  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value5));
1813  }
1814  case value_variant_type::Type::Type6: {
1815  return functor(
1816  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value6));
1817  }
1818  case value_variant_type::Type::Type7: {
1819  return functor(
1820  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value7));
1821  }
1822  case value_variant_type::Type::Type8: {
1823  return functor(
1824  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value8));
1825  }
1826  case value_variant_type::Type::Type9: {
1827  return functor(
1828  std::move(arg0.m_impl.m_value4), std::move(arg1.m_impl.m_value9));
1829  }
1830  default:
1831  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1832  }
1833  }
1834  case value_variant_type::Type::Type5: {
1835  switch(arg1.m_type)
1836  {
1837  case value_variant_type::Type::Type0: {
1838  return functor(
1839  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value0));
1840  }
1841  case value_variant_type::Type::Type1: {
1842  return functor(
1843  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value1));
1844  }
1845  case value_variant_type::Type::Type2: {
1846  return functor(
1847  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value2));
1848  }
1849  case value_variant_type::Type::Type3: {
1850  return functor(
1851  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value3));
1852  }
1853  case value_variant_type::Type::Type4: {
1854  return functor(
1855  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value4));
1856  }
1857  case value_variant_type::Type::Type5: {
1858  return functor(
1859  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value5));
1860  }
1861  case value_variant_type::Type::Type6: {
1862  return functor(
1863  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value6));
1864  }
1865  case value_variant_type::Type::Type7: {
1866  return functor(
1867  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value7));
1868  }
1869  case value_variant_type::Type::Type8: {
1870  return functor(
1871  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value8));
1872  }
1873  case value_variant_type::Type::Type9: {
1874  return functor(
1875  std::move(arg0.m_impl.m_value5), std::move(arg1.m_impl.m_value9));
1876  }
1877  default:
1878  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1879  }
1880  }
1881  case value_variant_type::Type::Type6: {
1882  switch(arg1.m_type)
1883  {
1884  case value_variant_type::Type::Type0: {
1885  return functor(
1886  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value0));
1887  }
1888  case value_variant_type::Type::Type1: {
1889  return functor(
1890  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value1));
1891  }
1892  case value_variant_type::Type::Type2: {
1893  return functor(
1894  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value2));
1895  }
1896  case value_variant_type::Type::Type3: {
1897  return functor(
1898  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value3));
1899  }
1900  case value_variant_type::Type::Type4: {
1901  return functor(
1902  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value4));
1903  }
1904  case value_variant_type::Type::Type5: {
1905  return functor(
1906  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value5));
1907  }
1908  case value_variant_type::Type::Type6: {
1909  return functor(
1910  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value6));
1911  }
1912  case value_variant_type::Type::Type7: {
1913  return functor(
1914  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value7));
1915  }
1916  case value_variant_type::Type::Type8: {
1917  return functor(
1918  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value8));
1919  }
1920  case value_variant_type::Type::Type9: {
1921  return functor(
1922  std::move(arg0.m_impl.m_value6), std::move(arg1.m_impl.m_value9));
1923  }
1924  default:
1925  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1926  }
1927  }
1928  case value_variant_type::Type::Type7: {
1929  switch(arg1.m_type)
1930  {
1931  case value_variant_type::Type::Type0: {
1932  return functor(
1933  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value0));
1934  }
1935  case value_variant_type::Type::Type1: {
1936  return functor(
1937  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value1));
1938  }
1939  case value_variant_type::Type::Type2: {
1940  return functor(
1941  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value2));
1942  }
1943  case value_variant_type::Type::Type3: {
1944  return functor(
1945  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value3));
1946  }
1947  case value_variant_type::Type::Type4: {
1948  return functor(
1949  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value4));
1950  }
1951  case value_variant_type::Type::Type5: {
1952  return functor(
1953  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value5));
1954  }
1955  case value_variant_type::Type::Type6: {
1956  return functor(
1957  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value6));
1958  }
1959  case value_variant_type::Type::Type7: {
1960  return functor(
1961  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value7));
1962  }
1963  case value_variant_type::Type::Type8: {
1964  return functor(
1965  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value8));
1966  }
1967  case value_variant_type::Type::Type9: {
1968  return functor(
1969  std::move(arg0.m_impl.m_value7), std::move(arg1.m_impl.m_value9));
1970  }
1971  default:
1972  ossia_do_throw(std::runtime_error, "value_variant: bad type");
1973  }
1974  }
1975  case value_variant_type::Type::Type8: {
1976  switch(arg1.m_type)
1977  {
1978  case value_variant_type::Type::Type0: {
1979  return functor(
1980  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value0));
1981  }
1982  case value_variant_type::Type::Type1: {
1983  return functor(
1984  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value1));
1985  }
1986  case value_variant_type::Type::Type2: {
1987  return functor(
1988  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value2));
1989  }
1990  case value_variant_type::Type::Type3: {
1991  return functor(
1992  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value3));
1993  }
1994  case value_variant_type::Type::Type4: {
1995  return functor(
1996  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value4));
1997  }
1998  case value_variant_type::Type::Type5: {
1999  return functor(
2000  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value5));
2001  }
2002  case value_variant_type::Type::Type6: {
2003  return functor(
2004  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value6));
2005  }
2006  case value_variant_type::Type::Type7: {
2007  return functor(
2008  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value7));
2009  }
2010  case value_variant_type::Type::Type8: {
2011  return functor(
2012  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value8));
2013  }
2014  case value_variant_type::Type::Type9: {
2015  return functor(
2016  std::move(arg0.m_impl.m_value8), std::move(arg1.m_impl.m_value9));
2017  }
2018  default:
2019  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2020  }
2021  }
2022  case value_variant_type::Type::Type9: {
2023  switch(arg1.m_type)
2024  {
2025  case value_variant_type::Type::Type0: {
2026  return functor(
2027  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value0));
2028  }
2029  case value_variant_type::Type::Type1: {
2030  return functor(
2031  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value1));
2032  }
2033  case value_variant_type::Type::Type2: {
2034  return functor(
2035  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value2));
2036  }
2037  case value_variant_type::Type::Type3: {
2038  return functor(
2039  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value3));
2040  }
2041  case value_variant_type::Type::Type4: {
2042  return functor(
2043  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value4));
2044  }
2045  case value_variant_type::Type::Type5: {
2046  return functor(
2047  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value5));
2048  }
2049  case value_variant_type::Type::Type6: {
2050  return functor(
2051  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value6));
2052  }
2053  case value_variant_type::Type::Type7: {
2054  return functor(
2055  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value7));
2056  }
2057  case value_variant_type::Type::Type8: {
2058  return functor(
2059  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value8));
2060  }
2061  case value_variant_type::Type::Type9: {
2062  return functor(
2063  std::move(arg0.m_impl.m_value9), std::move(arg1.m_impl.m_value9));
2064  }
2065  default:
2066  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2067  }
2068  }
2069  default:
2070  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2071  }
2072 }
2073 template <typename Functor>
2074 auto apply(Functor&& functor, value_variant_type& arg0, value_variant_type& arg1)
2075 {
2076  switch(arg0.m_type)
2077  {
2078  case value_variant_type::Type::Type0: {
2079  switch(arg1.m_type)
2080  {
2081  case value_variant_type::Type::Type0: {
2082  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value0);
2083  }
2084  case value_variant_type::Type::Type1: {
2085  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value1);
2086  }
2087  case value_variant_type::Type::Type2: {
2088  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value2);
2089  }
2090  case value_variant_type::Type::Type3: {
2091  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value3);
2092  }
2093  case value_variant_type::Type::Type4: {
2094  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value4);
2095  }
2096  case value_variant_type::Type::Type5: {
2097  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value5);
2098  }
2099  case value_variant_type::Type::Type6: {
2100  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value6);
2101  }
2102  case value_variant_type::Type::Type7: {
2103  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value7);
2104  }
2105  case value_variant_type::Type::Type8: {
2106  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value8);
2107  }
2108  case value_variant_type::Type::Type9: {
2109  return functor(arg0.m_impl.m_value0, arg1.m_impl.m_value9);
2110  }
2111  default:
2112  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2113  }
2114  }
2115  case value_variant_type::Type::Type1: {
2116  switch(arg1.m_type)
2117  {
2118  case value_variant_type::Type::Type0: {
2119  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value0);
2120  }
2121  case value_variant_type::Type::Type1: {
2122  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value1);
2123  }
2124  case value_variant_type::Type::Type2: {
2125  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value2);
2126  }
2127  case value_variant_type::Type::Type3: {
2128  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value3);
2129  }
2130  case value_variant_type::Type::Type4: {
2131  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value4);
2132  }
2133  case value_variant_type::Type::Type5: {
2134  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value5);
2135  }
2136  case value_variant_type::Type::Type6: {
2137  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value6);
2138  }
2139  case value_variant_type::Type::Type7: {
2140  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value7);
2141  }
2142  case value_variant_type::Type::Type8: {
2143  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value8);
2144  }
2145  case value_variant_type::Type::Type9: {
2146  return functor(arg0.m_impl.m_value1, arg1.m_impl.m_value9);
2147  }
2148  default:
2149  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2150  }
2151  }
2152  case value_variant_type::Type::Type2: {
2153  switch(arg1.m_type)
2154  {
2155  case value_variant_type::Type::Type0: {
2156  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value0);
2157  }
2158  case value_variant_type::Type::Type1: {
2159  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value1);
2160  }
2161  case value_variant_type::Type::Type2: {
2162  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value2);
2163  }
2164  case value_variant_type::Type::Type3: {
2165  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value3);
2166  }
2167  case value_variant_type::Type::Type4: {
2168  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value4);
2169  }
2170  case value_variant_type::Type::Type5: {
2171  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value5);
2172  }
2173  case value_variant_type::Type::Type6: {
2174  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value6);
2175  }
2176  case value_variant_type::Type::Type7: {
2177  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value7);
2178  }
2179  case value_variant_type::Type::Type8: {
2180  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value8);
2181  }
2182  case value_variant_type::Type::Type9: {
2183  return functor(arg0.m_impl.m_value2, arg1.m_impl.m_value9);
2184  }
2185  default:
2186  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2187  }
2188  }
2189  case value_variant_type::Type::Type3: {
2190  switch(arg1.m_type)
2191  {
2192  case value_variant_type::Type::Type0: {
2193  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value0);
2194  }
2195  case value_variant_type::Type::Type1: {
2196  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value1);
2197  }
2198  case value_variant_type::Type::Type2: {
2199  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value2);
2200  }
2201  case value_variant_type::Type::Type3: {
2202  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value3);
2203  }
2204  case value_variant_type::Type::Type4: {
2205  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value4);
2206  }
2207  case value_variant_type::Type::Type5: {
2208  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value5);
2209  }
2210  case value_variant_type::Type::Type6: {
2211  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value6);
2212  }
2213  case value_variant_type::Type::Type7: {
2214  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value7);
2215  }
2216  case value_variant_type::Type::Type8: {
2217  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value8);
2218  }
2219  case value_variant_type::Type::Type9: {
2220  return functor(arg0.m_impl.m_value3, arg1.m_impl.m_value9);
2221  }
2222  default:
2223  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2224  }
2225  }
2226  case value_variant_type::Type::Type4: {
2227  switch(arg1.m_type)
2228  {
2229  case value_variant_type::Type::Type0: {
2230  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value0);
2231  }
2232  case value_variant_type::Type::Type1: {
2233  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value1);
2234  }
2235  case value_variant_type::Type::Type2: {
2236  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value2);
2237  }
2238  case value_variant_type::Type::Type3: {
2239  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value3);
2240  }
2241  case value_variant_type::Type::Type4: {
2242  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value4);
2243  }
2244  case value_variant_type::Type::Type5: {
2245  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value5);
2246  }
2247  case value_variant_type::Type::Type6: {
2248  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value6);
2249  }
2250  case value_variant_type::Type::Type7: {
2251  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value7);
2252  }
2253  case value_variant_type::Type::Type8: {
2254  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value8);
2255  }
2256  case value_variant_type::Type::Type9: {
2257  return functor(arg0.m_impl.m_value4, arg1.m_impl.m_value9);
2258  }
2259  default:
2260  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2261  }
2262  }
2263  case value_variant_type::Type::Type5: {
2264  switch(arg1.m_type)
2265  {
2266  case value_variant_type::Type::Type0: {
2267  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value0);
2268  }
2269  case value_variant_type::Type::Type1: {
2270  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value1);
2271  }
2272  case value_variant_type::Type::Type2: {
2273  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value2);
2274  }
2275  case value_variant_type::Type::Type3: {
2276  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value3);
2277  }
2278  case value_variant_type::Type::Type4: {
2279  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value4);
2280  }
2281  case value_variant_type::Type::Type5: {
2282  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value5);
2283  }
2284  case value_variant_type::Type::Type6: {
2285  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value6);
2286  }
2287  case value_variant_type::Type::Type7: {
2288  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value7);
2289  }
2290  case value_variant_type::Type::Type8: {
2291  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value8);
2292  }
2293  case value_variant_type::Type::Type9: {
2294  return functor(arg0.m_impl.m_value5, arg1.m_impl.m_value9);
2295  }
2296  default:
2297  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2298  }
2299  }
2300  case value_variant_type::Type::Type6: {
2301  switch(arg1.m_type)
2302  {
2303  case value_variant_type::Type::Type0: {
2304  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value0);
2305  }
2306  case value_variant_type::Type::Type1: {
2307  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value1);
2308  }
2309  case value_variant_type::Type::Type2: {
2310  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value2);
2311  }
2312  case value_variant_type::Type::Type3: {
2313  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value3);
2314  }
2315  case value_variant_type::Type::Type4: {
2316  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value4);
2317  }
2318  case value_variant_type::Type::Type5: {
2319  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value5);
2320  }
2321  case value_variant_type::Type::Type6: {
2322  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value6);
2323  }
2324  case value_variant_type::Type::Type7: {
2325  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value7);
2326  }
2327  case value_variant_type::Type::Type8: {
2328  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value8);
2329  }
2330  case value_variant_type::Type::Type9: {
2331  return functor(arg0.m_impl.m_value6, arg1.m_impl.m_value9);
2332  }
2333  default:
2334  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2335  }
2336  }
2337  case value_variant_type::Type::Type7: {
2338  switch(arg1.m_type)
2339  {
2340  case value_variant_type::Type::Type0: {
2341  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value0);
2342  }
2343  case value_variant_type::Type::Type1: {
2344  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value1);
2345  }
2346  case value_variant_type::Type::Type2: {
2347  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value2);
2348  }
2349  case value_variant_type::Type::Type3: {
2350  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value3);
2351  }
2352  case value_variant_type::Type::Type4: {
2353  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value4);
2354  }
2355  case value_variant_type::Type::Type5: {
2356  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value5);
2357  }
2358  case value_variant_type::Type::Type6: {
2359  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value6);
2360  }
2361  case value_variant_type::Type::Type7: {
2362  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value7);
2363  }
2364  case value_variant_type::Type::Type8: {
2365  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value8);
2366  }
2367  case value_variant_type::Type::Type9: {
2368  return functor(arg0.m_impl.m_value7, arg1.m_impl.m_value9);
2369  }
2370  default:
2371  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2372  }
2373  }
2374  case value_variant_type::Type::Type8: {
2375  switch(arg1.m_type)
2376  {
2377  case value_variant_type::Type::Type0: {
2378  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value0);
2379  }
2380  case value_variant_type::Type::Type1: {
2381  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value1);
2382  }
2383  case value_variant_type::Type::Type2: {
2384  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value2);
2385  }
2386  case value_variant_type::Type::Type3: {
2387  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value3);
2388  }
2389  case value_variant_type::Type::Type4: {
2390  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value4);
2391  }
2392  case value_variant_type::Type::Type5: {
2393  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value5);
2394  }
2395  case value_variant_type::Type::Type6: {
2396  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value6);
2397  }
2398  case value_variant_type::Type::Type7: {
2399  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value7);
2400  }
2401  case value_variant_type::Type::Type8: {
2402  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value8);
2403  }
2404  case value_variant_type::Type::Type9: {
2405  return functor(arg0.m_impl.m_value8, arg1.m_impl.m_value9);
2406  }
2407  default:
2408  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2409  }
2410  }
2411  case value_variant_type::Type::Type9: {
2412  switch(arg1.m_type)
2413  {
2414  case value_variant_type::Type::Type0: {
2415  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value0);
2416  }
2417  case value_variant_type::Type::Type1: {
2418  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value1);
2419  }
2420  case value_variant_type::Type::Type2: {
2421  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value2);
2422  }
2423  case value_variant_type::Type::Type3: {
2424  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value3);
2425  }
2426  case value_variant_type::Type::Type4: {
2427  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value4);
2428  }
2429  case value_variant_type::Type::Type5: {
2430  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value5);
2431  }
2432  case value_variant_type::Type::Type6: {
2433  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value6);
2434  }
2435  case value_variant_type::Type::Type7: {
2436  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value7);
2437  }
2438  case value_variant_type::Type::Type8: {
2439  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value8);
2440  }
2441  case value_variant_type::Type::Type9: {
2442  return functor(arg0.m_impl.m_value9, arg1.m_impl.m_value9);
2443  }
2444  default:
2445  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2446  }
2447  }
2448  default:
2449  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2450  }
2451 }
2452 template <typename Functor>
2453 auto apply(
2454  Functor&& functor, const value_variant_type& arg0, const value_variant_type& arg1,
2455  const value_variant_type& arg2)
2456 {
2457  switch(arg0.m_type)
2458  {
2459  case value_variant_type::Type::Type0: {
2460  switch(arg1.m_type)
2461  {
2462  case value_variant_type::Type::Type0: {
2463  switch(arg2.m_type)
2464  {
2465  case value_variant_type::Type::Type0: {
2466  return functor(
2467  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
2468  }
2469  case value_variant_type::Type::Type1: {
2470  return functor(
2471  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
2472  }
2473  case value_variant_type::Type::Type2: {
2474  return functor(
2475  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
2476  }
2477  case value_variant_type::Type::Type3: {
2478  return functor(
2479  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
2480  }
2481  case value_variant_type::Type::Type4: {
2482  return functor(
2483  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
2484  }
2485  case value_variant_type::Type::Type5: {
2486  return functor(
2487  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
2488  }
2489  case value_variant_type::Type::Type6: {
2490  return functor(
2491  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
2492  }
2493  case value_variant_type::Type::Type7: {
2494  return functor(
2495  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
2496  }
2497  case value_variant_type::Type::Type8: {
2498  return functor(
2499  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
2500  }
2501  case value_variant_type::Type::Type9: {
2502  return functor(
2503  arg0.m_impl.m_value0, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
2504  }
2505  default:
2506  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2507  }
2508  }
2509  case value_variant_type::Type::Type1: {
2510  switch(arg2.m_type)
2511  {
2512  case value_variant_type::Type::Type0: {
2513  return functor(
2514  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
2515  }
2516  case value_variant_type::Type::Type1: {
2517  return functor(
2518  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
2519  }
2520  case value_variant_type::Type::Type2: {
2521  return functor(
2522  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
2523  }
2524  case value_variant_type::Type::Type3: {
2525  return functor(
2526  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
2527  }
2528  case value_variant_type::Type::Type4: {
2529  return functor(
2530  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
2531  }
2532  case value_variant_type::Type::Type5: {
2533  return functor(
2534  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
2535  }
2536  case value_variant_type::Type::Type6: {
2537  return functor(
2538  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
2539  }
2540  case value_variant_type::Type::Type7: {
2541  return functor(
2542  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
2543  }
2544  case value_variant_type::Type::Type8: {
2545  return functor(
2546  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
2547  }
2548  case value_variant_type::Type::Type9: {
2549  return functor(
2550  arg0.m_impl.m_value0, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
2551  }
2552  default:
2553  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2554  }
2555  }
2556  case value_variant_type::Type::Type2: {
2557  switch(arg2.m_type)
2558  {
2559  case value_variant_type::Type::Type0: {
2560  return functor(
2561  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
2562  }
2563  case value_variant_type::Type::Type1: {
2564  return functor(
2565  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
2566  }
2567  case value_variant_type::Type::Type2: {
2568  return functor(
2569  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
2570  }
2571  case value_variant_type::Type::Type3: {
2572  return functor(
2573  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
2574  }
2575  case value_variant_type::Type::Type4: {
2576  return functor(
2577  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
2578  }
2579  case value_variant_type::Type::Type5: {
2580  return functor(
2581  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
2582  }
2583  case value_variant_type::Type::Type6: {
2584  return functor(
2585  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
2586  }
2587  case value_variant_type::Type::Type7: {
2588  return functor(
2589  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
2590  }
2591  case value_variant_type::Type::Type8: {
2592  return functor(
2593  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
2594  }
2595  case value_variant_type::Type::Type9: {
2596  return functor(
2597  arg0.m_impl.m_value0, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
2598  }
2599  default:
2600  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2601  }
2602  }
2603  case value_variant_type::Type::Type3: {
2604  switch(arg2.m_type)
2605  {
2606  case value_variant_type::Type::Type0: {
2607  return functor(
2608  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
2609  }
2610  case value_variant_type::Type::Type1: {
2611  return functor(
2612  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
2613  }
2614  case value_variant_type::Type::Type2: {
2615  return functor(
2616  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
2617  }
2618  case value_variant_type::Type::Type3: {
2619  return functor(
2620  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
2621  }
2622  case value_variant_type::Type::Type4: {
2623  return functor(
2624  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
2625  }
2626  case value_variant_type::Type::Type5: {
2627  return functor(
2628  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
2629  }
2630  case value_variant_type::Type::Type6: {
2631  return functor(
2632  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
2633  }
2634  case value_variant_type::Type::Type7: {
2635  return functor(
2636  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
2637  }
2638  case value_variant_type::Type::Type8: {
2639  return functor(
2640  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
2641  }
2642  case value_variant_type::Type::Type9: {
2643  return functor(
2644  arg0.m_impl.m_value0, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
2645  }
2646  default:
2647  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2648  }
2649  }
2650  case value_variant_type::Type::Type4: {
2651  switch(arg2.m_type)
2652  {
2653  case value_variant_type::Type::Type0: {
2654  return functor(
2655  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
2656  }
2657  case value_variant_type::Type::Type1: {
2658  return functor(
2659  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
2660  }
2661  case value_variant_type::Type::Type2: {
2662  return functor(
2663  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
2664  }
2665  case value_variant_type::Type::Type3: {
2666  return functor(
2667  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
2668  }
2669  case value_variant_type::Type::Type4: {
2670  return functor(
2671  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
2672  }
2673  case value_variant_type::Type::Type5: {
2674  return functor(
2675  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
2676  }
2677  case value_variant_type::Type::Type6: {
2678  return functor(
2679  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
2680  }
2681  case value_variant_type::Type::Type7: {
2682  return functor(
2683  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
2684  }
2685  case value_variant_type::Type::Type8: {
2686  return functor(
2687  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
2688  }
2689  case value_variant_type::Type::Type9: {
2690  return functor(
2691  arg0.m_impl.m_value0, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
2692  }
2693  default:
2694  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2695  }
2696  }
2697  case value_variant_type::Type::Type5: {
2698  switch(arg2.m_type)
2699  {
2700  case value_variant_type::Type::Type0: {
2701  return functor(
2702  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
2703  }
2704  case value_variant_type::Type::Type1: {
2705  return functor(
2706  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
2707  }
2708  case value_variant_type::Type::Type2: {
2709  return functor(
2710  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
2711  }
2712  case value_variant_type::Type::Type3: {
2713  return functor(
2714  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
2715  }
2716  case value_variant_type::Type::Type4: {
2717  return functor(
2718  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
2719  }
2720  case value_variant_type::Type::Type5: {
2721  return functor(
2722  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
2723  }
2724  case value_variant_type::Type::Type6: {
2725  return functor(
2726  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
2727  }
2728  case value_variant_type::Type::Type7: {
2729  return functor(
2730  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
2731  }
2732  case value_variant_type::Type::Type8: {
2733  return functor(
2734  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
2735  }
2736  case value_variant_type::Type::Type9: {
2737  return functor(
2738  arg0.m_impl.m_value0, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
2739  }
2740  default:
2741  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2742  }
2743  }
2744  case value_variant_type::Type::Type6: {
2745  switch(arg2.m_type)
2746  {
2747  case value_variant_type::Type::Type0: {
2748  return functor(
2749  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
2750  }
2751  case value_variant_type::Type::Type1: {
2752  return functor(
2753  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
2754  }
2755  case value_variant_type::Type::Type2: {
2756  return functor(
2757  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
2758  }
2759  case value_variant_type::Type::Type3: {
2760  return functor(
2761  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
2762  }
2763  case value_variant_type::Type::Type4: {
2764  return functor(
2765  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
2766  }
2767  case value_variant_type::Type::Type5: {
2768  return functor(
2769  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
2770  }
2771  case value_variant_type::Type::Type6: {
2772  return functor(
2773  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
2774  }
2775  case value_variant_type::Type::Type7: {
2776  return functor(
2777  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
2778  }
2779  case value_variant_type::Type::Type8: {
2780  return functor(
2781  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
2782  }
2783  case value_variant_type::Type::Type9: {
2784  return functor(
2785  arg0.m_impl.m_value0, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
2786  }
2787  default:
2788  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2789  }
2790  }
2791  case value_variant_type::Type::Type7: {
2792  switch(arg2.m_type)
2793  {
2794  case value_variant_type::Type::Type0: {
2795  return functor(
2796  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
2797  }
2798  case value_variant_type::Type::Type1: {
2799  return functor(
2800  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
2801  }
2802  case value_variant_type::Type::Type2: {
2803  return functor(
2804  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
2805  }
2806  case value_variant_type::Type::Type3: {
2807  return functor(
2808  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
2809  }
2810  case value_variant_type::Type::Type4: {
2811  return functor(
2812  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
2813  }
2814  case value_variant_type::Type::Type5: {
2815  return functor(
2816  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
2817  }
2818  case value_variant_type::Type::Type6: {
2819  return functor(
2820  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
2821  }
2822  case value_variant_type::Type::Type7: {
2823  return functor(
2824  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
2825  }
2826  case value_variant_type::Type::Type8: {
2827  return functor(
2828  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
2829  }
2830  case value_variant_type::Type::Type9: {
2831  return functor(
2832  arg0.m_impl.m_value0, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
2833  }
2834  default:
2835  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2836  }
2837  }
2838  case value_variant_type::Type::Type8: {
2839  switch(arg2.m_type)
2840  {
2841  case value_variant_type::Type::Type0: {
2842  return functor(
2843  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
2844  }
2845  case value_variant_type::Type::Type1: {
2846  return functor(
2847  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
2848  }
2849  case value_variant_type::Type::Type2: {
2850  return functor(
2851  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
2852  }
2853  case value_variant_type::Type::Type3: {
2854  return functor(
2855  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
2856  }
2857  case value_variant_type::Type::Type4: {
2858  return functor(
2859  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
2860  }
2861  case value_variant_type::Type::Type5: {
2862  return functor(
2863  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
2864  }
2865  case value_variant_type::Type::Type6: {
2866  return functor(
2867  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
2868  }
2869  case value_variant_type::Type::Type7: {
2870  return functor(
2871  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
2872  }
2873  case value_variant_type::Type::Type8: {
2874  return functor(
2875  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
2876  }
2877  case value_variant_type::Type::Type9: {
2878  return functor(
2879  arg0.m_impl.m_value0, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
2880  }
2881  default:
2882  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2883  }
2884  }
2885  case value_variant_type::Type::Type9: {
2886  switch(arg2.m_type)
2887  {
2888  case value_variant_type::Type::Type0: {
2889  return functor(
2890  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
2891  }
2892  case value_variant_type::Type::Type1: {
2893  return functor(
2894  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
2895  }
2896  case value_variant_type::Type::Type2: {
2897  return functor(
2898  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
2899  }
2900  case value_variant_type::Type::Type3: {
2901  return functor(
2902  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
2903  }
2904  case value_variant_type::Type::Type4: {
2905  return functor(
2906  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
2907  }
2908  case value_variant_type::Type::Type5: {
2909  return functor(
2910  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
2911  }
2912  case value_variant_type::Type::Type6: {
2913  return functor(
2914  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
2915  }
2916  case value_variant_type::Type::Type7: {
2917  return functor(
2918  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
2919  }
2920  case value_variant_type::Type::Type8: {
2921  return functor(
2922  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
2923  }
2924  case value_variant_type::Type::Type9: {
2925  return functor(
2926  arg0.m_impl.m_value0, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
2927  }
2928  default:
2929  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2930  }
2931  }
2932  default:
2933  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2934  }
2935  }
2936  case value_variant_type::Type::Type1: {
2937  switch(arg1.m_type)
2938  {
2939  case value_variant_type::Type::Type0: {
2940  switch(arg2.m_type)
2941  {
2942  case value_variant_type::Type::Type0: {
2943  return functor(
2944  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
2945  }
2946  case value_variant_type::Type::Type1: {
2947  return functor(
2948  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
2949  }
2950  case value_variant_type::Type::Type2: {
2951  return functor(
2952  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
2953  }
2954  case value_variant_type::Type::Type3: {
2955  return functor(
2956  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
2957  }
2958  case value_variant_type::Type::Type4: {
2959  return functor(
2960  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
2961  }
2962  case value_variant_type::Type::Type5: {
2963  return functor(
2964  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
2965  }
2966  case value_variant_type::Type::Type6: {
2967  return functor(
2968  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
2969  }
2970  case value_variant_type::Type::Type7: {
2971  return functor(
2972  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
2973  }
2974  case value_variant_type::Type::Type8: {
2975  return functor(
2976  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
2977  }
2978  case value_variant_type::Type::Type9: {
2979  return functor(
2980  arg0.m_impl.m_value1, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
2981  }
2982  default:
2983  ossia_do_throw(std::runtime_error, "value_variant: bad type");
2984  }
2985  }
2986  case value_variant_type::Type::Type1: {
2987  switch(arg2.m_type)
2988  {
2989  case value_variant_type::Type::Type0: {
2990  return functor(
2991  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
2992  }
2993  case value_variant_type::Type::Type1: {
2994  return functor(
2995  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
2996  }
2997  case value_variant_type::Type::Type2: {
2998  return functor(
2999  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
3000  }
3001  case value_variant_type::Type::Type3: {
3002  return functor(
3003  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
3004  }
3005  case value_variant_type::Type::Type4: {
3006  return functor(
3007  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
3008  }
3009  case value_variant_type::Type::Type5: {
3010  return functor(
3011  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
3012  }
3013  case value_variant_type::Type::Type6: {
3014  return functor(
3015  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
3016  }
3017  case value_variant_type::Type::Type7: {
3018  return functor(
3019  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
3020  }
3021  case value_variant_type::Type::Type8: {
3022  return functor(
3023  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
3024  }
3025  case value_variant_type::Type::Type9: {
3026  return functor(
3027  arg0.m_impl.m_value1, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
3028  }
3029  default:
3030  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3031  }
3032  }
3033  case value_variant_type::Type::Type2: {
3034  switch(arg2.m_type)
3035  {
3036  case value_variant_type::Type::Type0: {
3037  return functor(
3038  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
3039  }
3040  case value_variant_type::Type::Type1: {
3041  return functor(
3042  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
3043  }
3044  case value_variant_type::Type::Type2: {
3045  return functor(
3046  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
3047  }
3048  case value_variant_type::Type::Type3: {
3049  return functor(
3050  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
3051  }
3052  case value_variant_type::Type::Type4: {
3053  return functor(
3054  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
3055  }
3056  case value_variant_type::Type::Type5: {
3057  return functor(
3058  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
3059  }
3060  case value_variant_type::Type::Type6: {
3061  return functor(
3062  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
3063  }
3064  case value_variant_type::Type::Type7: {
3065  return functor(
3066  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
3067  }
3068  case value_variant_type::Type::Type8: {
3069  return functor(
3070  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
3071  }
3072  case value_variant_type::Type::Type9: {
3073  return functor(
3074  arg0.m_impl.m_value1, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
3075  }
3076  default:
3077  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3078  }
3079  }
3080  case value_variant_type::Type::Type3: {
3081  switch(arg2.m_type)
3082  {
3083  case value_variant_type::Type::Type0: {
3084  return functor(
3085  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
3086  }
3087  case value_variant_type::Type::Type1: {
3088  return functor(
3089  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
3090  }
3091  case value_variant_type::Type::Type2: {
3092  return functor(
3093  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
3094  }
3095  case value_variant_type::Type::Type3: {
3096  return functor(
3097  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
3098  }
3099  case value_variant_type::Type::Type4: {
3100  return functor(
3101  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
3102  }
3103  case value_variant_type::Type::Type5: {
3104  return functor(
3105  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
3106  }
3107  case value_variant_type::Type::Type6: {
3108  return functor(
3109  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
3110  }
3111  case value_variant_type::Type::Type7: {
3112  return functor(
3113  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
3114  }
3115  case value_variant_type::Type::Type8: {
3116  return functor(
3117  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
3118  }
3119  case value_variant_type::Type::Type9: {
3120  return functor(
3121  arg0.m_impl.m_value1, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
3122  }
3123  default:
3124  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3125  }
3126  }
3127  case value_variant_type::Type::Type4: {
3128  switch(arg2.m_type)
3129  {
3130  case value_variant_type::Type::Type0: {
3131  return functor(
3132  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
3133  }
3134  case value_variant_type::Type::Type1: {
3135  return functor(
3136  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
3137  }
3138  case value_variant_type::Type::Type2: {
3139  return functor(
3140  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
3141  }
3142  case value_variant_type::Type::Type3: {
3143  return functor(
3144  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
3145  }
3146  case value_variant_type::Type::Type4: {
3147  return functor(
3148  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
3149  }
3150  case value_variant_type::Type::Type5: {
3151  return functor(
3152  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
3153  }
3154  case value_variant_type::Type::Type6: {
3155  return functor(
3156  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
3157  }
3158  case value_variant_type::Type::Type7: {
3159  return functor(
3160  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
3161  }
3162  case value_variant_type::Type::Type8: {
3163  return functor(
3164  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
3165  }
3166  case value_variant_type::Type::Type9: {
3167  return functor(
3168  arg0.m_impl.m_value1, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
3169  }
3170  default:
3171  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3172  }
3173  }
3174  case value_variant_type::Type::Type5: {
3175  switch(arg2.m_type)
3176  {
3177  case value_variant_type::Type::Type0: {
3178  return functor(
3179  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
3180  }
3181  case value_variant_type::Type::Type1: {
3182  return functor(
3183  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
3184  }
3185  case value_variant_type::Type::Type2: {
3186  return functor(
3187  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
3188  }
3189  case value_variant_type::Type::Type3: {
3190  return functor(
3191  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
3192  }
3193  case value_variant_type::Type::Type4: {
3194  return functor(
3195  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
3196  }
3197  case value_variant_type::Type::Type5: {
3198  return functor(
3199  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
3200  }
3201  case value_variant_type::Type::Type6: {
3202  return functor(
3203  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
3204  }
3205  case value_variant_type::Type::Type7: {
3206  return functor(
3207  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
3208  }
3209  case value_variant_type::Type::Type8: {
3210  return functor(
3211  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
3212  }
3213  case value_variant_type::Type::Type9: {
3214  return functor(
3215  arg0.m_impl.m_value1, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
3216  }
3217  default:
3218  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3219  }
3220  }
3221  case value_variant_type::Type::Type6: {
3222  switch(arg2.m_type)
3223  {
3224  case value_variant_type::Type::Type0: {
3225  return functor(
3226  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
3227  }
3228  case value_variant_type::Type::Type1: {
3229  return functor(
3230  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
3231  }
3232  case value_variant_type::Type::Type2: {
3233  return functor(
3234  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
3235  }
3236  case value_variant_type::Type::Type3: {
3237  return functor(
3238  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
3239  }
3240  case value_variant_type::Type::Type4: {
3241  return functor(
3242  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
3243  }
3244  case value_variant_type::Type::Type5: {
3245  return functor(
3246  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
3247  }
3248  case value_variant_type::Type::Type6: {
3249  return functor(
3250  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
3251  }
3252  case value_variant_type::Type::Type7: {
3253  return functor(
3254  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
3255  }
3256  case value_variant_type::Type::Type8: {
3257  return functor(
3258  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
3259  }
3260  case value_variant_type::Type::Type9: {
3261  return functor(
3262  arg0.m_impl.m_value1, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
3263  }
3264  default:
3265  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3266  }
3267  }
3268  case value_variant_type::Type::Type7: {
3269  switch(arg2.m_type)
3270  {
3271  case value_variant_type::Type::Type0: {
3272  return functor(
3273  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
3274  }
3275  case value_variant_type::Type::Type1: {
3276  return functor(
3277  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
3278  }
3279  case value_variant_type::Type::Type2: {
3280  return functor(
3281  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
3282  }
3283  case value_variant_type::Type::Type3: {
3284  return functor(
3285  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
3286  }
3287  case value_variant_type::Type::Type4: {
3288  return functor(
3289  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
3290  }
3291  case value_variant_type::Type::Type5: {
3292  return functor(
3293  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
3294  }
3295  case value_variant_type::Type::Type6: {
3296  return functor(
3297  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
3298  }
3299  case value_variant_type::Type::Type7: {
3300  return functor(
3301  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
3302  }
3303  case value_variant_type::Type::Type8: {
3304  return functor(
3305  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
3306  }
3307  case value_variant_type::Type::Type9: {
3308  return functor(
3309  arg0.m_impl.m_value1, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
3310  }
3311  default:
3312  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3313  }
3314  }
3315  case value_variant_type::Type::Type8: {
3316  switch(arg2.m_type)
3317  {
3318  case value_variant_type::Type::Type0: {
3319  return functor(
3320  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
3321  }
3322  case value_variant_type::Type::Type1: {
3323  return functor(
3324  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
3325  }
3326  case value_variant_type::Type::Type2: {
3327  return functor(
3328  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
3329  }
3330  case value_variant_type::Type::Type3: {
3331  return functor(
3332  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
3333  }
3334  case value_variant_type::Type::Type4: {
3335  return functor(
3336  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
3337  }
3338  case value_variant_type::Type::Type5: {
3339  return functor(
3340  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
3341  }
3342  case value_variant_type::Type::Type6: {
3343  return functor(
3344  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
3345  }
3346  case value_variant_type::Type::Type7: {
3347  return functor(
3348  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
3349  }
3350  case value_variant_type::Type::Type8: {
3351  return functor(
3352  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
3353  }
3354  case value_variant_type::Type::Type9: {
3355  return functor(
3356  arg0.m_impl.m_value1, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
3357  }
3358  default:
3359  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3360  }
3361  }
3362  case value_variant_type::Type::Type9: {
3363  switch(arg2.m_type)
3364  {
3365  case value_variant_type::Type::Type0: {
3366  return functor(
3367  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
3368  }
3369  case value_variant_type::Type::Type1: {
3370  return functor(
3371  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
3372  }
3373  case value_variant_type::Type::Type2: {
3374  return functor(
3375  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
3376  }
3377  case value_variant_type::Type::Type3: {
3378  return functor(
3379  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
3380  }
3381  case value_variant_type::Type::Type4: {
3382  return functor(
3383  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
3384  }
3385  case value_variant_type::Type::Type5: {
3386  return functor(
3387  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
3388  }
3389  case value_variant_type::Type::Type6: {
3390  return functor(
3391  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
3392  }
3393  case value_variant_type::Type::Type7: {
3394  return functor(
3395  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
3396  }
3397  case value_variant_type::Type::Type8: {
3398  return functor(
3399  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
3400  }
3401  case value_variant_type::Type::Type9: {
3402  return functor(
3403  arg0.m_impl.m_value1, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
3404  }
3405  default:
3406  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3407  }
3408  }
3409  default:
3410  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3411  }
3412  }
3413  case value_variant_type::Type::Type2: {
3414  switch(arg1.m_type)
3415  {
3416  case value_variant_type::Type::Type0: {
3417  switch(arg2.m_type)
3418  {
3419  case value_variant_type::Type::Type0: {
3420  return functor(
3421  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
3422  }
3423  case value_variant_type::Type::Type1: {
3424  return functor(
3425  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
3426  }
3427  case value_variant_type::Type::Type2: {
3428  return functor(
3429  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
3430  }
3431  case value_variant_type::Type::Type3: {
3432  return functor(
3433  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
3434  }
3435  case value_variant_type::Type::Type4: {
3436  return functor(
3437  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
3438  }
3439  case value_variant_type::Type::Type5: {
3440  return functor(
3441  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
3442  }
3443  case value_variant_type::Type::Type6: {
3444  return functor(
3445  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
3446  }
3447  case value_variant_type::Type::Type7: {
3448  return functor(
3449  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
3450  }
3451  case value_variant_type::Type::Type8: {
3452  return functor(
3453  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
3454  }
3455  case value_variant_type::Type::Type9: {
3456  return functor(
3457  arg0.m_impl.m_value2, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
3458  }
3459  default:
3460  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3461  }
3462  }
3463  case value_variant_type::Type::Type1: {
3464  switch(arg2.m_type)
3465  {
3466  case value_variant_type::Type::Type0: {
3467  return functor(
3468  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
3469  }
3470  case value_variant_type::Type::Type1: {
3471  return functor(
3472  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
3473  }
3474  case value_variant_type::Type::Type2: {
3475  return functor(
3476  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
3477  }
3478  case value_variant_type::Type::Type3: {
3479  return functor(
3480  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
3481  }
3482  case value_variant_type::Type::Type4: {
3483  return functor(
3484  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
3485  }
3486  case value_variant_type::Type::Type5: {
3487  return functor(
3488  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
3489  }
3490  case value_variant_type::Type::Type6: {
3491  return functor(
3492  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
3493  }
3494  case value_variant_type::Type::Type7: {
3495  return functor(
3496  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
3497  }
3498  case value_variant_type::Type::Type8: {
3499  return functor(
3500  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
3501  }
3502  case value_variant_type::Type::Type9: {
3503  return functor(
3504  arg0.m_impl.m_value2, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
3505  }
3506  default:
3507  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3508  }
3509  }
3510  case value_variant_type::Type::Type2: {
3511  switch(arg2.m_type)
3512  {
3513  case value_variant_type::Type::Type0: {
3514  return functor(
3515  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
3516  }
3517  case value_variant_type::Type::Type1: {
3518  return functor(
3519  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
3520  }
3521  case value_variant_type::Type::Type2: {
3522  return functor(
3523  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
3524  }
3525  case value_variant_type::Type::Type3: {
3526  return functor(
3527  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
3528  }
3529  case value_variant_type::Type::Type4: {
3530  return functor(
3531  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
3532  }
3533  case value_variant_type::Type::Type5: {
3534  return functor(
3535  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
3536  }
3537  case value_variant_type::Type::Type6: {
3538  return functor(
3539  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
3540  }
3541  case value_variant_type::Type::Type7: {
3542  return functor(
3543  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
3544  }
3545  case value_variant_type::Type::Type8: {
3546  return functor(
3547  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
3548  }
3549  case value_variant_type::Type::Type9: {
3550  return functor(
3551  arg0.m_impl.m_value2, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
3552  }
3553  default:
3554  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3555  }
3556  }
3557  case value_variant_type::Type::Type3: {
3558  switch(arg2.m_type)
3559  {
3560  case value_variant_type::Type::Type0: {
3561  return functor(
3562  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
3563  }
3564  case value_variant_type::Type::Type1: {
3565  return functor(
3566  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
3567  }
3568  case value_variant_type::Type::Type2: {
3569  return functor(
3570  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
3571  }
3572  case value_variant_type::Type::Type3: {
3573  return functor(
3574  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
3575  }
3576  case value_variant_type::Type::Type4: {
3577  return functor(
3578  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
3579  }
3580  case value_variant_type::Type::Type5: {
3581  return functor(
3582  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
3583  }
3584  case value_variant_type::Type::Type6: {
3585  return functor(
3586  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
3587  }
3588  case value_variant_type::Type::Type7: {
3589  return functor(
3590  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
3591  }
3592  case value_variant_type::Type::Type8: {
3593  return functor(
3594  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
3595  }
3596  case value_variant_type::Type::Type9: {
3597  return functor(
3598  arg0.m_impl.m_value2, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
3599  }
3600  default:
3601  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3602  }
3603  }
3604  case value_variant_type::Type::Type4: {
3605  switch(arg2.m_type)
3606  {
3607  case value_variant_type::Type::Type0: {
3608  return functor(
3609  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
3610  }
3611  case value_variant_type::Type::Type1: {
3612  return functor(
3613  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
3614  }
3615  case value_variant_type::Type::Type2: {
3616  return functor(
3617  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
3618  }
3619  case value_variant_type::Type::Type3: {
3620  return functor(
3621  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
3622  }
3623  case value_variant_type::Type::Type4: {
3624  return functor(
3625  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
3626  }
3627  case value_variant_type::Type::Type5: {
3628  return functor(
3629  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
3630  }
3631  case value_variant_type::Type::Type6: {
3632  return functor(
3633  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
3634  }
3635  case value_variant_type::Type::Type7: {
3636  return functor(
3637  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
3638  }
3639  case value_variant_type::Type::Type8: {
3640  return functor(
3641  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
3642  }
3643  case value_variant_type::Type::Type9: {
3644  return functor(
3645  arg0.m_impl.m_value2, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
3646  }
3647  default:
3648  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3649  }
3650  }
3651  case value_variant_type::Type::Type5: {
3652  switch(arg2.m_type)
3653  {
3654  case value_variant_type::Type::Type0: {
3655  return functor(
3656  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
3657  }
3658  case value_variant_type::Type::Type1: {
3659  return functor(
3660  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
3661  }
3662  case value_variant_type::Type::Type2: {
3663  return functor(
3664  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
3665  }
3666  case value_variant_type::Type::Type3: {
3667  return functor(
3668  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
3669  }
3670  case value_variant_type::Type::Type4: {
3671  return functor(
3672  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
3673  }
3674  case value_variant_type::Type::Type5: {
3675  return functor(
3676  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
3677  }
3678  case value_variant_type::Type::Type6: {
3679  return functor(
3680  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
3681  }
3682  case value_variant_type::Type::Type7: {
3683  return functor(
3684  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
3685  }
3686  case value_variant_type::Type::Type8: {
3687  return functor(
3688  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
3689  }
3690  case value_variant_type::Type::Type9: {
3691  return functor(
3692  arg0.m_impl.m_value2, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
3693  }
3694  default:
3695  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3696  }
3697  }
3698  case value_variant_type::Type::Type6: {
3699  switch(arg2.m_type)
3700  {
3701  case value_variant_type::Type::Type0: {
3702  return functor(
3703  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
3704  }
3705  case value_variant_type::Type::Type1: {
3706  return functor(
3707  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
3708  }
3709  case value_variant_type::Type::Type2: {
3710  return functor(
3711  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
3712  }
3713  case value_variant_type::Type::Type3: {
3714  return functor(
3715  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
3716  }
3717  case value_variant_type::Type::Type4: {
3718  return functor(
3719  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
3720  }
3721  case value_variant_type::Type::Type5: {
3722  return functor(
3723  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
3724  }
3725  case value_variant_type::Type::Type6: {
3726  return functor(
3727  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
3728  }
3729  case value_variant_type::Type::Type7: {
3730  return functor(
3731  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
3732  }
3733  case value_variant_type::Type::Type8: {
3734  return functor(
3735  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
3736  }
3737  case value_variant_type::Type::Type9: {
3738  return functor(
3739  arg0.m_impl.m_value2, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
3740  }
3741  default:
3742  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3743  }
3744  }
3745  case value_variant_type::Type::Type7: {
3746  switch(arg2.m_type)
3747  {
3748  case value_variant_type::Type::Type0: {
3749  return functor(
3750  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
3751  }
3752  case value_variant_type::Type::Type1: {
3753  return functor(
3754  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
3755  }
3756  case value_variant_type::Type::Type2: {
3757  return functor(
3758  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
3759  }
3760  case value_variant_type::Type::Type3: {
3761  return functor(
3762  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
3763  }
3764  case value_variant_type::Type::Type4: {
3765  return functor(
3766  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
3767  }
3768  case value_variant_type::Type::Type5: {
3769  return functor(
3770  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
3771  }
3772  case value_variant_type::Type::Type6: {
3773  return functor(
3774  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
3775  }
3776  case value_variant_type::Type::Type7: {
3777  return functor(
3778  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
3779  }
3780  case value_variant_type::Type::Type8: {
3781  return functor(
3782  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
3783  }
3784  case value_variant_type::Type::Type9: {
3785  return functor(
3786  arg0.m_impl.m_value2, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
3787  }
3788  default:
3789  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3790  }
3791  }
3792  case value_variant_type::Type::Type8: {
3793  switch(arg2.m_type)
3794  {
3795  case value_variant_type::Type::Type0: {
3796  return functor(
3797  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
3798  }
3799  case value_variant_type::Type::Type1: {
3800  return functor(
3801  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
3802  }
3803  case value_variant_type::Type::Type2: {
3804  return functor(
3805  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
3806  }
3807  case value_variant_type::Type::Type3: {
3808  return functor(
3809  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
3810  }
3811  case value_variant_type::Type::Type4: {
3812  return functor(
3813  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
3814  }
3815  case value_variant_type::Type::Type5: {
3816  return functor(
3817  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
3818  }
3819  case value_variant_type::Type::Type6: {
3820  return functor(
3821  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
3822  }
3823  case value_variant_type::Type::Type7: {
3824  return functor(
3825  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
3826  }
3827  case value_variant_type::Type::Type8: {
3828  return functor(
3829  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
3830  }
3831  case value_variant_type::Type::Type9: {
3832  return functor(
3833  arg0.m_impl.m_value2, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
3834  }
3835  default:
3836  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3837  }
3838  }
3839  case value_variant_type::Type::Type9: {
3840  switch(arg2.m_type)
3841  {
3842  case value_variant_type::Type::Type0: {
3843  return functor(
3844  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
3845  }
3846  case value_variant_type::Type::Type1: {
3847  return functor(
3848  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
3849  }
3850  case value_variant_type::Type::Type2: {
3851  return functor(
3852  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
3853  }
3854  case value_variant_type::Type::Type3: {
3855  return functor(
3856  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
3857  }
3858  case value_variant_type::Type::Type4: {
3859  return functor(
3860  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
3861  }
3862  case value_variant_type::Type::Type5: {
3863  return functor(
3864  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
3865  }
3866  case value_variant_type::Type::Type6: {
3867  return functor(
3868  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
3869  }
3870  case value_variant_type::Type::Type7: {
3871  return functor(
3872  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
3873  }
3874  case value_variant_type::Type::Type8: {
3875  return functor(
3876  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
3877  }
3878  case value_variant_type::Type::Type9: {
3879  return functor(
3880  arg0.m_impl.m_value2, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
3881  }
3882  default:
3883  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3884  }
3885  }
3886  default:
3887  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3888  }
3889  }
3890  case value_variant_type::Type::Type3: {
3891  switch(arg1.m_type)
3892  {
3893  case value_variant_type::Type::Type0: {
3894  switch(arg2.m_type)
3895  {
3896  case value_variant_type::Type::Type0: {
3897  return functor(
3898  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
3899  }
3900  case value_variant_type::Type::Type1: {
3901  return functor(
3902  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
3903  }
3904  case value_variant_type::Type::Type2: {
3905  return functor(
3906  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
3907  }
3908  case value_variant_type::Type::Type3: {
3909  return functor(
3910  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
3911  }
3912  case value_variant_type::Type::Type4: {
3913  return functor(
3914  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
3915  }
3916  case value_variant_type::Type::Type5: {
3917  return functor(
3918  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
3919  }
3920  case value_variant_type::Type::Type6: {
3921  return functor(
3922  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
3923  }
3924  case value_variant_type::Type::Type7: {
3925  return functor(
3926  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
3927  }
3928  case value_variant_type::Type::Type8: {
3929  return functor(
3930  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
3931  }
3932  case value_variant_type::Type::Type9: {
3933  return functor(
3934  arg0.m_impl.m_value3, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
3935  }
3936  default:
3937  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3938  }
3939  }
3940  case value_variant_type::Type::Type1: {
3941  switch(arg2.m_type)
3942  {
3943  case value_variant_type::Type::Type0: {
3944  return functor(
3945  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
3946  }
3947  case value_variant_type::Type::Type1: {
3948  return functor(
3949  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
3950  }
3951  case value_variant_type::Type::Type2: {
3952  return functor(
3953  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
3954  }
3955  case value_variant_type::Type::Type3: {
3956  return functor(
3957  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
3958  }
3959  case value_variant_type::Type::Type4: {
3960  return functor(
3961  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
3962  }
3963  case value_variant_type::Type::Type5: {
3964  return functor(
3965  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
3966  }
3967  case value_variant_type::Type::Type6: {
3968  return functor(
3969  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
3970  }
3971  case value_variant_type::Type::Type7: {
3972  return functor(
3973  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
3974  }
3975  case value_variant_type::Type::Type8: {
3976  return functor(
3977  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
3978  }
3979  case value_variant_type::Type::Type9: {
3980  return functor(
3981  arg0.m_impl.m_value3, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
3982  }
3983  default:
3984  ossia_do_throw(std::runtime_error, "value_variant: bad type");
3985  }
3986  }
3987  case value_variant_type::Type::Type2: {
3988  switch(arg2.m_type)
3989  {
3990  case value_variant_type::Type::Type0: {
3991  return functor(
3992  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
3993  }
3994  case value_variant_type::Type::Type1: {
3995  return functor(
3996  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
3997  }
3998  case value_variant_type::Type::Type2: {
3999  return functor(
4000  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
4001  }
4002  case value_variant_type::Type::Type3: {
4003  return functor(
4004  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
4005  }
4006  case value_variant_type::Type::Type4: {
4007  return functor(
4008  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
4009  }
4010  case value_variant_type::Type::Type5: {
4011  return functor(
4012  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
4013  }
4014  case value_variant_type::Type::Type6: {
4015  return functor(
4016  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
4017  }
4018  case value_variant_type::Type::Type7: {
4019  return functor(
4020  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
4021  }
4022  case value_variant_type::Type::Type8: {
4023  return functor(
4024  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
4025  }
4026  case value_variant_type::Type::Type9: {
4027  return functor(
4028  arg0.m_impl.m_value3, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
4029  }
4030  default:
4031  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4032  }
4033  }
4034  case value_variant_type::Type::Type3: {
4035  switch(arg2.m_type)
4036  {
4037  case value_variant_type::Type::Type0: {
4038  return functor(
4039  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
4040  }
4041  case value_variant_type::Type::Type1: {
4042  return functor(
4043  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
4044  }
4045  case value_variant_type::Type::Type2: {
4046  return functor(
4047  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
4048  }
4049  case value_variant_type::Type::Type3: {
4050  return functor(
4051  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
4052  }
4053  case value_variant_type::Type::Type4: {
4054  return functor(
4055  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
4056  }
4057  case value_variant_type::Type::Type5: {
4058  return functor(
4059  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
4060  }
4061  case value_variant_type::Type::Type6: {
4062  return functor(
4063  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
4064  }
4065  case value_variant_type::Type::Type7: {
4066  return functor(
4067  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
4068  }
4069  case value_variant_type::Type::Type8: {
4070  return functor(
4071  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
4072  }
4073  case value_variant_type::Type::Type9: {
4074  return functor(
4075  arg0.m_impl.m_value3, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
4076  }
4077  default:
4078  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4079  }
4080  }
4081  case value_variant_type::Type::Type4: {
4082  switch(arg2.m_type)
4083  {
4084  case value_variant_type::Type::Type0: {
4085  return functor(
4086  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
4087  }
4088  case value_variant_type::Type::Type1: {
4089  return functor(
4090  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
4091  }
4092  case value_variant_type::Type::Type2: {
4093  return functor(
4094  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
4095  }
4096  case value_variant_type::Type::Type3: {
4097  return functor(
4098  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
4099  }
4100  case value_variant_type::Type::Type4: {
4101  return functor(
4102  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
4103  }
4104  case value_variant_type::Type::Type5: {
4105  return functor(
4106  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
4107  }
4108  case value_variant_type::Type::Type6: {
4109  return functor(
4110  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
4111  }
4112  case value_variant_type::Type::Type7: {
4113  return functor(
4114  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
4115  }
4116  case value_variant_type::Type::Type8: {
4117  return functor(
4118  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
4119  }
4120  case value_variant_type::Type::Type9: {
4121  return functor(
4122  arg0.m_impl.m_value3, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
4123  }
4124  default:
4125  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4126  }
4127  }
4128  case value_variant_type::Type::Type5: {
4129  switch(arg2.m_type)
4130  {
4131  case value_variant_type::Type::Type0: {
4132  return functor(
4133  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
4134  }
4135  case value_variant_type::Type::Type1: {
4136  return functor(
4137  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
4138  }
4139  case value_variant_type::Type::Type2: {
4140  return functor(
4141  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
4142  }
4143  case value_variant_type::Type::Type3: {
4144  return functor(
4145  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
4146  }
4147  case value_variant_type::Type::Type4: {
4148  return functor(
4149  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
4150  }
4151  case value_variant_type::Type::Type5: {
4152  return functor(
4153  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
4154  }
4155  case value_variant_type::Type::Type6: {
4156  return functor(
4157  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
4158  }
4159  case value_variant_type::Type::Type7: {
4160  return functor(
4161  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
4162  }
4163  case value_variant_type::Type::Type8: {
4164  return functor(
4165  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
4166  }
4167  case value_variant_type::Type::Type9: {
4168  return functor(
4169  arg0.m_impl.m_value3, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
4170  }
4171  default:
4172  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4173  }
4174  }
4175  case value_variant_type::Type::Type6: {
4176  switch(arg2.m_type)
4177  {
4178  case value_variant_type::Type::Type0: {
4179  return functor(
4180  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
4181  }
4182  case value_variant_type::Type::Type1: {
4183  return functor(
4184  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
4185  }
4186  case value_variant_type::Type::Type2: {
4187  return functor(
4188  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
4189  }
4190  case value_variant_type::Type::Type3: {
4191  return functor(
4192  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
4193  }
4194  case value_variant_type::Type::Type4: {
4195  return functor(
4196  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
4197  }
4198  case value_variant_type::Type::Type5: {
4199  return functor(
4200  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
4201  }
4202  case value_variant_type::Type::Type6: {
4203  return functor(
4204  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
4205  }
4206  case value_variant_type::Type::Type7: {
4207  return functor(
4208  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
4209  }
4210  case value_variant_type::Type::Type8: {
4211  return functor(
4212  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
4213  }
4214  case value_variant_type::Type::Type9: {
4215  return functor(
4216  arg0.m_impl.m_value3, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
4217  }
4218  default:
4219  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4220  }
4221  }
4222  case value_variant_type::Type::Type7: {
4223  switch(arg2.m_type)
4224  {
4225  case value_variant_type::Type::Type0: {
4226  return functor(
4227  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
4228  }
4229  case value_variant_type::Type::Type1: {
4230  return functor(
4231  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
4232  }
4233  case value_variant_type::Type::Type2: {
4234  return functor(
4235  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
4236  }
4237  case value_variant_type::Type::Type3: {
4238  return functor(
4239  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
4240  }
4241  case value_variant_type::Type::Type4: {
4242  return functor(
4243  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
4244  }
4245  case value_variant_type::Type::Type5: {
4246  return functor(
4247  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
4248  }
4249  case value_variant_type::Type::Type6: {
4250  return functor(
4251  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
4252  }
4253  case value_variant_type::Type::Type7: {
4254  return functor(
4255  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
4256  }
4257  case value_variant_type::Type::Type8: {
4258  return functor(
4259  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
4260  }
4261  case value_variant_type::Type::Type9: {
4262  return functor(
4263  arg0.m_impl.m_value3, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
4264  }
4265  default:
4266  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4267  }
4268  }
4269  case value_variant_type::Type::Type8: {
4270  switch(arg2.m_type)
4271  {
4272  case value_variant_type::Type::Type0: {
4273  return functor(
4274  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
4275  }
4276  case value_variant_type::Type::Type1: {
4277  return functor(
4278  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
4279  }
4280  case value_variant_type::Type::Type2: {
4281  return functor(
4282  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
4283  }
4284  case value_variant_type::Type::Type3: {
4285  return functor(
4286  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
4287  }
4288  case value_variant_type::Type::Type4: {
4289  return functor(
4290  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
4291  }
4292  case value_variant_type::Type::Type5: {
4293  return functor(
4294  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
4295  }
4296  case value_variant_type::Type::Type6: {
4297  return functor(
4298  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
4299  }
4300  case value_variant_type::Type::Type7: {
4301  return functor(
4302  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
4303  }
4304  case value_variant_type::Type::Type8: {
4305  return functor(
4306  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
4307  }
4308  case value_variant_type::Type::Type9: {
4309  return functor(
4310  arg0.m_impl.m_value3, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
4311  }
4312  default:
4313  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4314  }
4315  }
4316  case value_variant_type::Type::Type9: {
4317  switch(arg2.m_type)
4318  {
4319  case value_variant_type::Type::Type0: {
4320  return functor(
4321  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
4322  }
4323  case value_variant_type::Type::Type1: {
4324  return functor(
4325  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
4326  }
4327  case value_variant_type::Type::Type2: {
4328  return functor(
4329  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
4330  }
4331  case value_variant_type::Type::Type3: {
4332  return functor(
4333  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
4334  }
4335  case value_variant_type::Type::Type4: {
4336  return functor(
4337  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
4338  }
4339  case value_variant_type::Type::Type5: {
4340  return functor(
4341  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
4342  }
4343  case value_variant_type::Type::Type6: {
4344  return functor(
4345  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
4346  }
4347  case value_variant_type::Type::Type7: {
4348  return functor(
4349  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
4350  }
4351  case value_variant_type::Type::Type8: {
4352  return functor(
4353  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
4354  }
4355  case value_variant_type::Type::Type9: {
4356  return functor(
4357  arg0.m_impl.m_value3, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
4358  }
4359  default:
4360  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4361  }
4362  }
4363  default:
4364  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4365  }
4366  }
4367  case value_variant_type::Type::Type4: {
4368  switch(arg1.m_type)
4369  {
4370  case value_variant_type::Type::Type0: {
4371  switch(arg2.m_type)
4372  {
4373  case value_variant_type::Type::Type0: {
4374  return functor(
4375  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
4376  }
4377  case value_variant_type::Type::Type1: {
4378  return functor(
4379  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
4380  }
4381  case value_variant_type::Type::Type2: {
4382  return functor(
4383  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
4384  }
4385  case value_variant_type::Type::Type3: {
4386  return functor(
4387  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
4388  }
4389  case value_variant_type::Type::Type4: {
4390  return functor(
4391  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
4392  }
4393  case value_variant_type::Type::Type5: {
4394  return functor(
4395  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
4396  }
4397  case value_variant_type::Type::Type6: {
4398  return functor(
4399  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
4400  }
4401  case value_variant_type::Type::Type7: {
4402  return functor(
4403  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
4404  }
4405  case value_variant_type::Type::Type8: {
4406  return functor(
4407  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
4408  }
4409  case value_variant_type::Type::Type9: {
4410  return functor(
4411  arg0.m_impl.m_value4, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
4412  }
4413  default:
4414  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4415  }
4416  }
4417  case value_variant_type::Type::Type1: {
4418  switch(arg2.m_type)
4419  {
4420  case value_variant_type::Type::Type0: {
4421  return functor(
4422  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
4423  }
4424  case value_variant_type::Type::Type1: {
4425  return functor(
4426  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
4427  }
4428  case value_variant_type::Type::Type2: {
4429  return functor(
4430  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
4431  }
4432  case value_variant_type::Type::Type3: {
4433  return functor(
4434  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
4435  }
4436  case value_variant_type::Type::Type4: {
4437  return functor(
4438  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
4439  }
4440  case value_variant_type::Type::Type5: {
4441  return functor(
4442  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
4443  }
4444  case value_variant_type::Type::Type6: {
4445  return functor(
4446  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
4447  }
4448  case value_variant_type::Type::Type7: {
4449  return functor(
4450  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
4451  }
4452  case value_variant_type::Type::Type8: {
4453  return functor(
4454  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
4455  }
4456  case value_variant_type::Type::Type9: {
4457  return functor(
4458  arg0.m_impl.m_value4, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
4459  }
4460  default:
4461  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4462  }
4463  }
4464  case value_variant_type::Type::Type2: {
4465  switch(arg2.m_type)
4466  {
4467  case value_variant_type::Type::Type0: {
4468  return functor(
4469  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
4470  }
4471  case value_variant_type::Type::Type1: {
4472  return functor(
4473  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
4474  }
4475  case value_variant_type::Type::Type2: {
4476  return functor(
4477  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
4478  }
4479  case value_variant_type::Type::Type3: {
4480  return functor(
4481  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
4482  }
4483  case value_variant_type::Type::Type4: {
4484  return functor(
4485  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
4486  }
4487  case value_variant_type::Type::Type5: {
4488  return functor(
4489  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
4490  }
4491  case value_variant_type::Type::Type6: {
4492  return functor(
4493  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
4494  }
4495  case value_variant_type::Type::Type7: {
4496  return functor(
4497  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
4498  }
4499  case value_variant_type::Type::Type8: {
4500  return functor(
4501  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
4502  }
4503  case value_variant_type::Type::Type9: {
4504  return functor(
4505  arg0.m_impl.m_value4, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
4506  }
4507  default:
4508  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4509  }
4510  }
4511  case value_variant_type::Type::Type3: {
4512  switch(arg2.m_type)
4513  {
4514  case value_variant_type::Type::Type0: {
4515  return functor(
4516  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
4517  }
4518  case value_variant_type::Type::Type1: {
4519  return functor(
4520  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
4521  }
4522  case value_variant_type::Type::Type2: {
4523  return functor(
4524  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
4525  }
4526  case value_variant_type::Type::Type3: {
4527  return functor(
4528  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
4529  }
4530  case value_variant_type::Type::Type4: {
4531  return functor(
4532  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
4533  }
4534  case value_variant_type::Type::Type5: {
4535  return functor(
4536  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
4537  }
4538  case value_variant_type::Type::Type6: {
4539  return functor(
4540  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
4541  }
4542  case value_variant_type::Type::Type7: {
4543  return functor(
4544  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
4545  }
4546  case value_variant_type::Type::Type8: {
4547  return functor(
4548  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
4549  }
4550  case value_variant_type::Type::Type9: {
4551  return functor(
4552  arg0.m_impl.m_value4, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
4553  }
4554  default:
4555  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4556  }
4557  }
4558  case value_variant_type::Type::Type4: {
4559  switch(arg2.m_type)
4560  {
4561  case value_variant_type::Type::Type0: {
4562  return functor(
4563  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
4564  }
4565  case value_variant_type::Type::Type1: {
4566  return functor(
4567  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
4568  }
4569  case value_variant_type::Type::Type2: {
4570  return functor(
4571  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
4572  }
4573  case value_variant_type::Type::Type3: {
4574  return functor(
4575  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
4576  }
4577  case value_variant_type::Type::Type4: {
4578  return functor(
4579  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
4580  }
4581  case value_variant_type::Type::Type5: {
4582  return functor(
4583  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
4584  }
4585  case value_variant_type::Type::Type6: {
4586  return functor(
4587  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
4588  }
4589  case value_variant_type::Type::Type7: {
4590  return functor(
4591  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
4592  }
4593  case value_variant_type::Type::Type8: {
4594  return functor(
4595  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
4596  }
4597  case value_variant_type::Type::Type9: {
4598  return functor(
4599  arg0.m_impl.m_value4, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
4600  }
4601  default:
4602  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4603  }
4604  }
4605  case value_variant_type::Type::Type5: {
4606  switch(arg2.m_type)
4607  {
4608  case value_variant_type::Type::Type0: {
4609  return functor(
4610  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
4611  }
4612  case value_variant_type::Type::Type1: {
4613  return functor(
4614  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
4615  }
4616  case value_variant_type::Type::Type2: {
4617  return functor(
4618  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
4619  }
4620  case value_variant_type::Type::Type3: {
4621  return functor(
4622  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
4623  }
4624  case value_variant_type::Type::Type4: {
4625  return functor(
4626  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
4627  }
4628  case value_variant_type::Type::Type5: {
4629  return functor(
4630  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
4631  }
4632  case value_variant_type::Type::Type6: {
4633  return functor(
4634  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
4635  }
4636  case value_variant_type::Type::Type7: {
4637  return functor(
4638  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
4639  }
4640  case value_variant_type::Type::Type8: {
4641  return functor(
4642  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
4643  }
4644  case value_variant_type::Type::Type9: {
4645  return functor(
4646  arg0.m_impl.m_value4, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
4647  }
4648  default:
4649  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4650  }
4651  }
4652  case value_variant_type::Type::Type6: {
4653  switch(arg2.m_type)
4654  {
4655  case value_variant_type::Type::Type0: {
4656  return functor(
4657  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
4658  }
4659  case value_variant_type::Type::Type1: {
4660  return functor(
4661  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
4662  }
4663  case value_variant_type::Type::Type2: {
4664  return functor(
4665  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
4666  }
4667  case value_variant_type::Type::Type3: {
4668  return functor(
4669  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
4670  }
4671  case value_variant_type::Type::Type4: {
4672  return functor(
4673  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
4674  }
4675  case value_variant_type::Type::Type5: {
4676  return functor(
4677  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
4678  }
4679  case value_variant_type::Type::Type6: {
4680  return functor(
4681  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
4682  }
4683  case value_variant_type::Type::Type7: {
4684  return functor(
4685  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
4686  }
4687  case value_variant_type::Type::Type8: {
4688  return functor(
4689  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
4690  }
4691  case value_variant_type::Type::Type9: {
4692  return functor(
4693  arg0.m_impl.m_value4, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
4694  }
4695  default:
4696  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4697  }
4698  }
4699  case value_variant_type::Type::Type7: {
4700  switch(arg2.m_type)
4701  {
4702  case value_variant_type::Type::Type0: {
4703  return functor(
4704  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
4705  }
4706  case value_variant_type::Type::Type1: {
4707  return functor(
4708  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
4709  }
4710  case value_variant_type::Type::Type2: {
4711  return functor(
4712  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
4713  }
4714  case value_variant_type::Type::Type3: {
4715  return functor(
4716  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
4717  }
4718  case value_variant_type::Type::Type4: {
4719  return functor(
4720  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
4721  }
4722  case value_variant_type::Type::Type5: {
4723  return functor(
4724  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
4725  }
4726  case value_variant_type::Type::Type6: {
4727  return functor(
4728  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
4729  }
4730  case value_variant_type::Type::Type7: {
4731  return functor(
4732  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
4733  }
4734  case value_variant_type::Type::Type8: {
4735  return functor(
4736  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
4737  }
4738  case value_variant_type::Type::Type9: {
4739  return functor(
4740  arg0.m_impl.m_value4, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
4741  }
4742  default:
4743  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4744  }
4745  }
4746  case value_variant_type::Type::Type8: {
4747  switch(arg2.m_type)
4748  {
4749  case value_variant_type::Type::Type0: {
4750  return functor(
4751  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
4752  }
4753  case value_variant_type::Type::Type1: {
4754  return functor(
4755  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
4756  }
4757  case value_variant_type::Type::Type2: {
4758  return functor(
4759  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
4760  }
4761  case value_variant_type::Type::Type3: {
4762  return functor(
4763  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
4764  }
4765  case value_variant_type::Type::Type4: {
4766  return functor(
4767  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
4768  }
4769  case value_variant_type::Type::Type5: {
4770  return functor(
4771  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
4772  }
4773  case value_variant_type::Type::Type6: {
4774  return functor(
4775  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
4776  }
4777  case value_variant_type::Type::Type7: {
4778  return functor(
4779  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
4780  }
4781  case value_variant_type::Type::Type8: {
4782  return functor(
4783  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
4784  }
4785  case value_variant_type::Type::Type9: {
4786  return functor(
4787  arg0.m_impl.m_value4, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
4788  }
4789  default:
4790  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4791  }
4792  }
4793  case value_variant_type::Type::Type9: {
4794  switch(arg2.m_type)
4795  {
4796  case value_variant_type::Type::Type0: {
4797  return functor(
4798  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
4799  }
4800  case value_variant_type::Type::Type1: {
4801  return functor(
4802  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
4803  }
4804  case value_variant_type::Type::Type2: {
4805  return functor(
4806  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
4807  }
4808  case value_variant_type::Type::Type3: {
4809  return functor(
4810  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
4811  }
4812  case value_variant_type::Type::Type4: {
4813  return functor(
4814  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
4815  }
4816  case value_variant_type::Type::Type5: {
4817  return functor(
4818  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
4819  }
4820  case value_variant_type::Type::Type6: {
4821  return functor(
4822  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
4823  }
4824  case value_variant_type::Type::Type7: {
4825  return functor(
4826  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
4827  }
4828  case value_variant_type::Type::Type8: {
4829  return functor(
4830  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
4831  }
4832  case value_variant_type::Type::Type9: {
4833  return functor(
4834  arg0.m_impl.m_value4, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
4835  }
4836  default:
4837  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4838  }
4839  }
4840  default:
4841  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4842  }
4843  }
4844  case value_variant_type::Type::Type5: {
4845  switch(arg1.m_type)
4846  {
4847  case value_variant_type::Type::Type0: {
4848  switch(arg2.m_type)
4849  {
4850  case value_variant_type::Type::Type0: {
4851  return functor(
4852  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
4853  }
4854  case value_variant_type::Type::Type1: {
4855  return functor(
4856  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
4857  }
4858  case value_variant_type::Type::Type2: {
4859  return functor(
4860  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
4861  }
4862  case value_variant_type::Type::Type3: {
4863  return functor(
4864  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
4865  }
4866  case value_variant_type::Type::Type4: {
4867  return functor(
4868  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
4869  }
4870  case value_variant_type::Type::Type5: {
4871  return functor(
4872  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
4873  }
4874  case value_variant_type::Type::Type6: {
4875  return functor(
4876  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
4877  }
4878  case value_variant_type::Type::Type7: {
4879  return functor(
4880  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
4881  }
4882  case value_variant_type::Type::Type8: {
4883  return functor(
4884  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
4885  }
4886  case value_variant_type::Type::Type9: {
4887  return functor(
4888  arg0.m_impl.m_value5, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
4889  }
4890  default:
4891  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4892  }
4893  }
4894  case value_variant_type::Type::Type1: {
4895  switch(arg2.m_type)
4896  {
4897  case value_variant_type::Type::Type0: {
4898  return functor(
4899  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
4900  }
4901  case value_variant_type::Type::Type1: {
4902  return functor(
4903  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
4904  }
4905  case value_variant_type::Type::Type2: {
4906  return functor(
4907  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
4908  }
4909  case value_variant_type::Type::Type3: {
4910  return functor(
4911  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
4912  }
4913  case value_variant_type::Type::Type4: {
4914  return functor(
4915  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
4916  }
4917  case value_variant_type::Type::Type5: {
4918  return functor(
4919  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
4920  }
4921  case value_variant_type::Type::Type6: {
4922  return functor(
4923  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
4924  }
4925  case value_variant_type::Type::Type7: {
4926  return functor(
4927  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
4928  }
4929  case value_variant_type::Type::Type8: {
4930  return functor(
4931  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
4932  }
4933  case value_variant_type::Type::Type9: {
4934  return functor(
4935  arg0.m_impl.m_value5, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
4936  }
4937  default:
4938  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4939  }
4940  }
4941  case value_variant_type::Type::Type2: {
4942  switch(arg2.m_type)
4943  {
4944  case value_variant_type::Type::Type0: {
4945  return functor(
4946  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
4947  }
4948  case value_variant_type::Type::Type1: {
4949  return functor(
4950  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
4951  }
4952  case value_variant_type::Type::Type2: {
4953  return functor(
4954  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
4955  }
4956  case value_variant_type::Type::Type3: {
4957  return functor(
4958  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
4959  }
4960  case value_variant_type::Type::Type4: {
4961  return functor(
4962  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
4963  }
4964  case value_variant_type::Type::Type5: {
4965  return functor(
4966  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
4967  }
4968  case value_variant_type::Type::Type6: {
4969  return functor(
4970  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
4971  }
4972  case value_variant_type::Type::Type7: {
4973  return functor(
4974  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
4975  }
4976  case value_variant_type::Type::Type8: {
4977  return functor(
4978  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
4979  }
4980  case value_variant_type::Type::Type9: {
4981  return functor(
4982  arg0.m_impl.m_value5, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
4983  }
4984  default:
4985  ossia_do_throw(std::runtime_error, "value_variant: bad type");
4986  }
4987  }
4988  case value_variant_type::Type::Type3: {
4989  switch(arg2.m_type)
4990  {
4991  case value_variant_type::Type::Type0: {
4992  return functor(
4993  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
4994  }
4995  case value_variant_type::Type::Type1: {
4996  return functor(
4997  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
4998  }
4999  case value_variant_type::Type::Type2: {
5000  return functor(
5001  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
5002  }
5003  case value_variant_type::Type::Type3: {
5004  return functor(
5005  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
5006  }
5007  case value_variant_type::Type::Type4: {
5008  return functor(
5009  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
5010  }
5011  case value_variant_type::Type::Type5: {
5012  return functor(
5013  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
5014  }
5015  case value_variant_type::Type::Type6: {
5016  return functor(
5017  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
5018  }
5019  case value_variant_type::Type::Type7: {
5020  return functor(
5021  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
5022  }
5023  case value_variant_type::Type::Type8: {
5024  return functor(
5025  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
5026  }
5027  case value_variant_type::Type::Type9: {
5028  return functor(
5029  arg0.m_impl.m_value5, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
5030  }
5031  default:
5032  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5033  }
5034  }
5035  case value_variant_type::Type::Type4: {
5036  switch(arg2.m_type)
5037  {
5038  case value_variant_type::Type::Type0: {
5039  return functor(
5040  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
5041  }
5042  case value_variant_type::Type::Type1: {
5043  return functor(
5044  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
5045  }
5046  case value_variant_type::Type::Type2: {
5047  return functor(
5048  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
5049  }
5050  case value_variant_type::Type::Type3: {
5051  return functor(
5052  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
5053  }
5054  case value_variant_type::Type::Type4: {
5055  return functor(
5056  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
5057  }
5058  case value_variant_type::Type::Type5: {
5059  return functor(
5060  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
5061  }
5062  case value_variant_type::Type::Type6: {
5063  return functor(
5064  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
5065  }
5066  case value_variant_type::Type::Type7: {
5067  return functor(
5068  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
5069  }
5070  case value_variant_type::Type::Type8: {
5071  return functor(
5072  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
5073  }
5074  case value_variant_type::Type::Type9: {
5075  return functor(
5076  arg0.m_impl.m_value5, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
5077  }
5078  default:
5079  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5080  }
5081  }
5082  case value_variant_type::Type::Type5: {
5083  switch(arg2.m_type)
5084  {
5085  case value_variant_type::Type::Type0: {
5086  return functor(
5087  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
5088  }
5089  case value_variant_type::Type::Type1: {
5090  return functor(
5091  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
5092  }
5093  case value_variant_type::Type::Type2: {
5094  return functor(
5095  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
5096  }
5097  case value_variant_type::Type::Type3: {
5098  return functor(
5099  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
5100  }
5101  case value_variant_type::Type::Type4: {
5102  return functor(
5103  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
5104  }
5105  case value_variant_type::Type::Type5: {
5106  return functor(
5107  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
5108  }
5109  case value_variant_type::Type::Type6: {
5110  return functor(
5111  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
5112  }
5113  case value_variant_type::Type::Type7: {
5114  return functor(
5115  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
5116  }
5117  case value_variant_type::Type::Type8: {
5118  return functor(
5119  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
5120  }
5121  case value_variant_type::Type::Type9: {
5122  return functor(
5123  arg0.m_impl.m_value5, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
5124  }
5125  default:
5126  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5127  }
5128  }
5129  case value_variant_type::Type::Type6: {
5130  switch(arg2.m_type)
5131  {
5132  case value_variant_type::Type::Type0: {
5133  return functor(
5134  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
5135  }
5136  case value_variant_type::Type::Type1: {
5137  return functor(
5138  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
5139  }
5140  case value_variant_type::Type::Type2: {
5141  return functor(
5142  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
5143  }
5144  case value_variant_type::Type::Type3: {
5145  return functor(
5146  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
5147  }
5148  case value_variant_type::Type::Type4: {
5149  return functor(
5150  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
5151  }
5152  case value_variant_type::Type::Type5: {
5153  return functor(
5154  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
5155  }
5156  case value_variant_type::Type::Type6: {
5157  return functor(
5158  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
5159  }
5160  case value_variant_type::Type::Type7: {
5161  return functor(
5162  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
5163  }
5164  case value_variant_type::Type::Type8: {
5165  return functor(
5166  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
5167  }
5168  case value_variant_type::Type::Type9: {
5169  return functor(
5170  arg0.m_impl.m_value5, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
5171  }
5172  default:
5173  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5174  }
5175  }
5176  case value_variant_type::Type::Type7: {
5177  switch(arg2.m_type)
5178  {
5179  case value_variant_type::Type::Type0: {
5180  return functor(
5181  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
5182  }
5183  case value_variant_type::Type::Type1: {
5184  return functor(
5185  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
5186  }
5187  case value_variant_type::Type::Type2: {
5188  return functor(
5189  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
5190  }
5191  case value_variant_type::Type::Type3: {
5192  return functor(
5193  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
5194  }
5195  case value_variant_type::Type::Type4: {
5196  return functor(
5197  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
5198  }
5199  case value_variant_type::Type::Type5: {
5200  return functor(
5201  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
5202  }
5203  case value_variant_type::Type::Type6: {
5204  return functor(
5205  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
5206  }
5207  case value_variant_type::Type::Type7: {
5208  return functor(
5209  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
5210  }
5211  case value_variant_type::Type::Type8: {
5212  return functor(
5213  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
5214  }
5215  case value_variant_type::Type::Type9: {
5216  return functor(
5217  arg0.m_impl.m_value5, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
5218  }
5219  default:
5220  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5221  }
5222  }
5223  case value_variant_type::Type::Type8: {
5224  switch(arg2.m_type)
5225  {
5226  case value_variant_type::Type::Type0: {
5227  return functor(
5228  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
5229  }
5230  case value_variant_type::Type::Type1: {
5231  return functor(
5232  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
5233  }
5234  case value_variant_type::Type::Type2: {
5235  return functor(
5236  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
5237  }
5238  case value_variant_type::Type::Type3: {
5239  return functor(
5240  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
5241  }
5242  case value_variant_type::Type::Type4: {
5243  return functor(
5244  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
5245  }
5246  case value_variant_type::Type::Type5: {
5247  return functor(
5248  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
5249  }
5250  case value_variant_type::Type::Type6: {
5251  return functor(
5252  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
5253  }
5254  case value_variant_type::Type::Type7: {
5255  return functor(
5256  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
5257  }
5258  case value_variant_type::Type::Type8: {
5259  return functor(
5260  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
5261  }
5262  case value_variant_type::Type::Type9: {
5263  return functor(
5264  arg0.m_impl.m_value5, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
5265  }
5266  default:
5267  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5268  }
5269  }
5270  case value_variant_type::Type::Type9: {
5271  switch(arg2.m_type)
5272  {
5273  case value_variant_type::Type::Type0: {
5274  return functor(
5275  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
5276  }
5277  case value_variant_type::Type::Type1: {
5278  return functor(
5279  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
5280  }
5281  case value_variant_type::Type::Type2: {
5282  return functor(
5283  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
5284  }
5285  case value_variant_type::Type::Type3: {
5286  return functor(
5287  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
5288  }
5289  case value_variant_type::Type::Type4: {
5290  return functor(
5291  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
5292  }
5293  case value_variant_type::Type::Type5: {
5294  return functor(
5295  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
5296  }
5297  case value_variant_type::Type::Type6: {
5298  return functor(
5299  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
5300  }
5301  case value_variant_type::Type::Type7: {
5302  return functor(
5303  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
5304  }
5305  case value_variant_type::Type::Type8: {
5306  return functor(
5307  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
5308  }
5309  case value_variant_type::Type::Type9: {
5310  return functor(
5311  arg0.m_impl.m_value5, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
5312  }
5313  default:
5314  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5315  }
5316  }
5317  default:
5318  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5319  }
5320  }
5321  case value_variant_type::Type::Type6: {
5322  switch(arg1.m_type)
5323  {
5324  case value_variant_type::Type::Type0: {
5325  switch(arg2.m_type)
5326  {
5327  case value_variant_type::Type::Type0: {
5328  return functor(
5329  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
5330  }
5331  case value_variant_type::Type::Type1: {
5332  return functor(
5333  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
5334  }
5335  case value_variant_type::Type::Type2: {
5336  return functor(
5337  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
5338  }
5339  case value_variant_type::Type::Type3: {
5340  return functor(
5341  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
5342  }
5343  case value_variant_type::Type::Type4: {
5344  return functor(
5345  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
5346  }
5347  case value_variant_type::Type::Type5: {
5348  return functor(
5349  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
5350  }
5351  case value_variant_type::Type::Type6: {
5352  return functor(
5353  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
5354  }
5355  case value_variant_type::Type::Type7: {
5356  return functor(
5357  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
5358  }
5359  case value_variant_type::Type::Type8: {
5360  return functor(
5361  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
5362  }
5363  case value_variant_type::Type::Type9: {
5364  return functor(
5365  arg0.m_impl.m_value6, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
5366  }
5367  default:
5368  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5369  }
5370  }
5371  case value_variant_type::Type::Type1: {
5372  switch(arg2.m_type)
5373  {
5374  case value_variant_type::Type::Type0: {
5375  return functor(
5376  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
5377  }
5378  case value_variant_type::Type::Type1: {
5379  return functor(
5380  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
5381  }
5382  case value_variant_type::Type::Type2: {
5383  return functor(
5384  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
5385  }
5386  case value_variant_type::Type::Type3: {
5387  return functor(
5388  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
5389  }
5390  case value_variant_type::Type::Type4: {
5391  return functor(
5392  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
5393  }
5394  case value_variant_type::Type::Type5: {
5395  return functor(
5396  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
5397  }
5398  case value_variant_type::Type::Type6: {
5399  return functor(
5400  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
5401  }
5402  case value_variant_type::Type::Type7: {
5403  return functor(
5404  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
5405  }
5406  case value_variant_type::Type::Type8: {
5407  return functor(
5408  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
5409  }
5410  case value_variant_type::Type::Type9: {
5411  return functor(
5412  arg0.m_impl.m_value6, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
5413  }
5414  default:
5415  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5416  }
5417  }
5418  case value_variant_type::Type::Type2: {
5419  switch(arg2.m_type)
5420  {
5421  case value_variant_type::Type::Type0: {
5422  return functor(
5423  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
5424  }
5425  case value_variant_type::Type::Type1: {
5426  return functor(
5427  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
5428  }
5429  case value_variant_type::Type::Type2: {
5430  return functor(
5431  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
5432  }
5433  case value_variant_type::Type::Type3: {
5434  return functor(
5435  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
5436  }
5437  case value_variant_type::Type::Type4: {
5438  return functor(
5439  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
5440  }
5441  case value_variant_type::Type::Type5: {
5442  return functor(
5443  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
5444  }
5445  case value_variant_type::Type::Type6: {
5446  return functor(
5447  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
5448  }
5449  case value_variant_type::Type::Type7: {
5450  return functor(
5451  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
5452  }
5453  case value_variant_type::Type::Type8: {
5454  return functor(
5455  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
5456  }
5457  case value_variant_type::Type::Type9: {
5458  return functor(
5459  arg0.m_impl.m_value6, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
5460  }
5461  default:
5462  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5463  }
5464  }
5465  case value_variant_type::Type::Type3: {
5466  switch(arg2.m_type)
5467  {
5468  case value_variant_type::Type::Type0: {
5469  return functor(
5470  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
5471  }
5472  case value_variant_type::Type::Type1: {
5473  return functor(
5474  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
5475  }
5476  case value_variant_type::Type::Type2: {
5477  return functor(
5478  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
5479  }
5480  case value_variant_type::Type::Type3: {
5481  return functor(
5482  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
5483  }
5484  case value_variant_type::Type::Type4: {
5485  return functor(
5486  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
5487  }
5488  case value_variant_type::Type::Type5: {
5489  return functor(
5490  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
5491  }
5492  case value_variant_type::Type::Type6: {
5493  return functor(
5494  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
5495  }
5496  case value_variant_type::Type::Type7: {
5497  return functor(
5498  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
5499  }
5500  case value_variant_type::Type::Type8: {
5501  return functor(
5502  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
5503  }
5504  case value_variant_type::Type::Type9: {
5505  return functor(
5506  arg0.m_impl.m_value6, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
5507  }
5508  default:
5509  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5510  }
5511  }
5512  case value_variant_type::Type::Type4: {
5513  switch(arg2.m_type)
5514  {
5515  case value_variant_type::Type::Type0: {
5516  return functor(
5517  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
5518  }
5519  case value_variant_type::Type::Type1: {
5520  return functor(
5521  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
5522  }
5523  case value_variant_type::Type::Type2: {
5524  return functor(
5525  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
5526  }
5527  case value_variant_type::Type::Type3: {
5528  return functor(
5529  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
5530  }
5531  case value_variant_type::Type::Type4: {
5532  return functor(
5533  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
5534  }
5535  case value_variant_type::Type::Type5: {
5536  return functor(
5537  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
5538  }
5539  case value_variant_type::Type::Type6: {
5540  return functor(
5541  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
5542  }
5543  case value_variant_type::Type::Type7: {
5544  return functor(
5545  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
5546  }
5547  case value_variant_type::Type::Type8: {
5548  return functor(
5549  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
5550  }
5551  case value_variant_type::Type::Type9: {
5552  return functor(
5553  arg0.m_impl.m_value6, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
5554  }
5555  default:
5556  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5557  }
5558  }
5559  case value_variant_type::Type::Type5: {
5560  switch(arg2.m_type)
5561  {
5562  case value_variant_type::Type::Type0: {
5563  return functor(
5564  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
5565  }
5566  case value_variant_type::Type::Type1: {
5567  return functor(
5568  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
5569  }
5570  case value_variant_type::Type::Type2: {
5571  return functor(
5572  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
5573  }
5574  case value_variant_type::Type::Type3: {
5575  return functor(
5576  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
5577  }
5578  case value_variant_type::Type::Type4: {
5579  return functor(
5580  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
5581  }
5582  case value_variant_type::Type::Type5: {
5583  return functor(
5584  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
5585  }
5586  case value_variant_type::Type::Type6: {
5587  return functor(
5588  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
5589  }
5590  case value_variant_type::Type::Type7: {
5591  return functor(
5592  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
5593  }
5594  case value_variant_type::Type::Type8: {
5595  return functor(
5596  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
5597  }
5598  case value_variant_type::Type::Type9: {
5599  return functor(
5600  arg0.m_impl.m_value6, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
5601  }
5602  default:
5603  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5604  }
5605  }
5606  case value_variant_type::Type::Type6: {
5607  switch(arg2.m_type)
5608  {
5609  case value_variant_type::Type::Type0: {
5610  return functor(
5611  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
5612  }
5613  case value_variant_type::Type::Type1: {
5614  return functor(
5615  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
5616  }
5617  case value_variant_type::Type::Type2: {
5618  return functor(
5619  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
5620  }
5621  case value_variant_type::Type::Type3: {
5622  return functor(
5623  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
5624  }
5625  case value_variant_type::Type::Type4: {
5626  return functor(
5627  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
5628  }
5629  case value_variant_type::Type::Type5: {
5630  return functor(
5631  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
5632  }
5633  case value_variant_type::Type::Type6: {
5634  return functor(
5635  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
5636  }
5637  case value_variant_type::Type::Type7: {
5638  return functor(
5639  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
5640  }
5641  case value_variant_type::Type::Type8: {
5642  return functor(
5643  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
5644  }
5645  case value_variant_type::Type::Type9: {
5646  return functor(
5647  arg0.m_impl.m_value6, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
5648  }
5649  default:
5650  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5651  }
5652  }
5653  case value_variant_type::Type::Type7: {
5654  switch(arg2.m_type)
5655  {
5656  case value_variant_type::Type::Type0: {
5657  return functor(
5658  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
5659  }
5660  case value_variant_type::Type::Type1: {
5661  return functor(
5662  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
5663  }
5664  case value_variant_type::Type::Type2: {
5665  return functor(
5666  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
5667  }
5668  case value_variant_type::Type::Type3: {
5669  return functor(
5670  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
5671  }
5672  case value_variant_type::Type::Type4: {
5673  return functor(
5674  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
5675  }
5676  case value_variant_type::Type::Type5: {
5677  return functor(
5678  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
5679  }
5680  case value_variant_type::Type::Type6: {
5681  return functor(
5682  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
5683  }
5684  case value_variant_type::Type::Type7: {
5685  return functor(
5686  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
5687  }
5688  case value_variant_type::Type::Type8: {
5689  return functor(
5690  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
5691  }
5692  case value_variant_type::Type::Type9: {
5693  return functor(
5694  arg0.m_impl.m_value6, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
5695  }
5696  default:
5697  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5698  }
5699  }
5700  case value_variant_type::Type::Type8: {
5701  switch(arg2.m_type)
5702  {
5703  case value_variant_type::Type::Type0: {
5704  return functor(
5705  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
5706  }
5707  case value_variant_type::Type::Type1: {
5708  return functor(
5709  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
5710  }
5711  case value_variant_type::Type::Type2: {
5712  return functor(
5713  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
5714  }
5715  case value_variant_type::Type::Type3: {
5716  return functor(
5717  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
5718  }
5719  case value_variant_type::Type::Type4: {
5720  return functor(
5721  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
5722  }
5723  case value_variant_type::Type::Type5: {
5724  return functor(
5725  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
5726  }
5727  case value_variant_type::Type::Type6: {
5728  return functor(
5729  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
5730  }
5731  case value_variant_type::Type::Type7: {
5732  return functor(
5733  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
5734  }
5735  case value_variant_type::Type::Type8: {
5736  return functor(
5737  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
5738  }
5739  case value_variant_type::Type::Type9: {
5740  return functor(
5741  arg0.m_impl.m_value6, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
5742  }
5743  default:
5744  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5745  }
5746  }
5747  case value_variant_type::Type::Type9: {
5748  switch(arg2.m_type)
5749  {
5750  case value_variant_type::Type::Type0: {
5751  return functor(
5752  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
5753  }
5754  case value_variant_type::Type::Type1: {
5755  return functor(
5756  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
5757  }
5758  case value_variant_type::Type::Type2: {
5759  return functor(
5760  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
5761  }
5762  case value_variant_type::Type::Type3: {
5763  return functor(
5764  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
5765  }
5766  case value_variant_type::Type::Type4: {
5767  return functor(
5768  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
5769  }
5770  case value_variant_type::Type::Type5: {
5771  return functor(
5772  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
5773  }
5774  case value_variant_type::Type::Type6: {
5775  return functor(
5776  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
5777  }
5778  case value_variant_type::Type::Type7: {
5779  return functor(
5780  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
5781  }
5782  case value_variant_type::Type::Type8: {
5783  return functor(
5784  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
5785  }
5786  case value_variant_type::Type::Type9: {
5787  return functor(
5788  arg0.m_impl.m_value6, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
5789  }
5790  default:
5791  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5792  }
5793  }
5794  default:
5795  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5796  }
5797  }
5798  case value_variant_type::Type::Type7: {
5799  switch(arg1.m_type)
5800  {
5801  case value_variant_type::Type::Type0: {
5802  switch(arg2.m_type)
5803  {
5804  case value_variant_type::Type::Type0: {
5805  return functor(
5806  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
5807  }
5808  case value_variant_type::Type::Type1: {
5809  return functor(
5810  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
5811  }
5812  case value_variant_type::Type::Type2: {
5813  return functor(
5814  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
5815  }
5816  case value_variant_type::Type::Type3: {
5817  return functor(
5818  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
5819  }
5820  case value_variant_type::Type::Type4: {
5821  return functor(
5822  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
5823  }
5824  case value_variant_type::Type::Type5: {
5825  return functor(
5826  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
5827  }
5828  case value_variant_type::Type::Type6: {
5829  return functor(
5830  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
5831  }
5832  case value_variant_type::Type::Type7: {
5833  return functor(
5834  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
5835  }
5836  case value_variant_type::Type::Type8: {
5837  return functor(
5838  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
5839  }
5840  case value_variant_type::Type::Type9: {
5841  return functor(
5842  arg0.m_impl.m_value7, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
5843  }
5844  default:
5845  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5846  }
5847  }
5848  case value_variant_type::Type::Type1: {
5849  switch(arg2.m_type)
5850  {
5851  case value_variant_type::Type::Type0: {
5852  return functor(
5853  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
5854  }
5855  case value_variant_type::Type::Type1: {
5856  return functor(
5857  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
5858  }
5859  case value_variant_type::Type::Type2: {
5860  return functor(
5861  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
5862  }
5863  case value_variant_type::Type::Type3: {
5864  return functor(
5865  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
5866  }
5867  case value_variant_type::Type::Type4: {
5868  return functor(
5869  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
5870  }
5871  case value_variant_type::Type::Type5: {
5872  return functor(
5873  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
5874  }
5875  case value_variant_type::Type::Type6: {
5876  return functor(
5877  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
5878  }
5879  case value_variant_type::Type::Type7: {
5880  return functor(
5881  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
5882  }
5883  case value_variant_type::Type::Type8: {
5884  return functor(
5885  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
5886  }
5887  case value_variant_type::Type::Type9: {
5888  return functor(
5889  arg0.m_impl.m_value7, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
5890  }
5891  default:
5892  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5893  }
5894  }
5895  case value_variant_type::Type::Type2: {
5896  switch(arg2.m_type)
5897  {
5898  case value_variant_type::Type::Type0: {
5899  return functor(
5900  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
5901  }
5902  case value_variant_type::Type::Type1: {
5903  return functor(
5904  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
5905  }
5906  case value_variant_type::Type::Type2: {
5907  return functor(
5908  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
5909  }
5910  case value_variant_type::Type::Type3: {
5911  return functor(
5912  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
5913  }
5914  case value_variant_type::Type::Type4: {
5915  return functor(
5916  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
5917  }
5918  case value_variant_type::Type::Type5: {
5919  return functor(
5920  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
5921  }
5922  case value_variant_type::Type::Type6: {
5923  return functor(
5924  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
5925  }
5926  case value_variant_type::Type::Type7: {
5927  return functor(
5928  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
5929  }
5930  case value_variant_type::Type::Type8: {
5931  return functor(
5932  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
5933  }
5934  case value_variant_type::Type::Type9: {
5935  return functor(
5936  arg0.m_impl.m_value7, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
5937  }
5938  default:
5939  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5940  }
5941  }
5942  case value_variant_type::Type::Type3: {
5943  switch(arg2.m_type)
5944  {
5945  case value_variant_type::Type::Type0: {
5946  return functor(
5947  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
5948  }
5949  case value_variant_type::Type::Type1: {
5950  return functor(
5951  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
5952  }
5953  case value_variant_type::Type::Type2: {
5954  return functor(
5955  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
5956  }
5957  case value_variant_type::Type::Type3: {
5958  return functor(
5959  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
5960  }
5961  case value_variant_type::Type::Type4: {
5962  return functor(
5963  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
5964  }
5965  case value_variant_type::Type::Type5: {
5966  return functor(
5967  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
5968  }
5969  case value_variant_type::Type::Type6: {
5970  return functor(
5971  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
5972  }
5973  case value_variant_type::Type::Type7: {
5974  return functor(
5975  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
5976  }
5977  case value_variant_type::Type::Type8: {
5978  return functor(
5979  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
5980  }
5981  case value_variant_type::Type::Type9: {
5982  return functor(
5983  arg0.m_impl.m_value7, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
5984  }
5985  default:
5986  ossia_do_throw(std::runtime_error, "value_variant: bad type");
5987  }
5988  }
5989  case value_variant_type::Type::Type4: {
5990  switch(arg2.m_type)
5991  {
5992  case value_variant_type::Type::Type0: {
5993  return functor(
5994  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
5995  }
5996  case value_variant_type::Type::Type1: {
5997  return functor(
5998  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
5999  }
6000  case value_variant_type::Type::Type2: {
6001  return functor(
6002  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
6003  }
6004  case value_variant_type::Type::Type3: {
6005  return functor(
6006  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
6007  }
6008  case value_variant_type::Type::Type4: {
6009  return functor(
6010  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
6011  }
6012  case value_variant_type::Type::Type5: {
6013  return functor(
6014  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
6015  }
6016  case value_variant_type::Type::Type6: {
6017  return functor(
6018  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
6019  }
6020  case value_variant_type::Type::Type7: {
6021  return functor(
6022  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
6023  }
6024  case value_variant_type::Type::Type8: {
6025  return functor(
6026  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
6027  }
6028  case value_variant_type::Type::Type9: {
6029  return functor(
6030  arg0.m_impl.m_value7, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
6031  }
6032  default:
6033  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6034  }
6035  }
6036  case value_variant_type::Type::Type5: {
6037  switch(arg2.m_type)
6038  {
6039  case value_variant_type::Type::Type0: {
6040  return functor(
6041  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
6042  }
6043  case value_variant_type::Type::Type1: {
6044  return functor(
6045  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
6046  }
6047  case value_variant_type::Type::Type2: {
6048  return functor(
6049  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
6050  }
6051  case value_variant_type::Type::Type3: {
6052  return functor(
6053  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
6054  }
6055  case value_variant_type::Type::Type4: {
6056  return functor(
6057  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
6058  }
6059  case value_variant_type::Type::Type5: {
6060  return functor(
6061  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
6062  }
6063  case value_variant_type::Type::Type6: {
6064  return functor(
6065  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
6066  }
6067  case value_variant_type::Type::Type7: {
6068  return functor(
6069  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
6070  }
6071  case value_variant_type::Type::Type8: {
6072  return functor(
6073  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
6074  }
6075  case value_variant_type::Type::Type9: {
6076  return functor(
6077  arg0.m_impl.m_value7, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
6078  }
6079  default:
6080  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6081  }
6082  }
6083  case value_variant_type::Type::Type6: {
6084  switch(arg2.m_type)
6085  {
6086  case value_variant_type::Type::Type0: {
6087  return functor(
6088  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
6089  }
6090  case value_variant_type::Type::Type1: {
6091  return functor(
6092  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
6093  }
6094  case value_variant_type::Type::Type2: {
6095  return functor(
6096  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
6097  }
6098  case value_variant_type::Type::Type3: {
6099  return functor(
6100  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
6101  }
6102  case value_variant_type::Type::Type4: {
6103  return functor(
6104  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
6105  }
6106  case value_variant_type::Type::Type5: {
6107  return functor(
6108  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
6109  }
6110  case value_variant_type::Type::Type6: {
6111  return functor(
6112  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
6113  }
6114  case value_variant_type::Type::Type7: {
6115  return functor(
6116  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
6117  }
6118  case value_variant_type::Type::Type8: {
6119  return functor(
6120  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
6121  }
6122  case value_variant_type::Type::Type9: {
6123  return functor(
6124  arg0.m_impl.m_value7, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
6125  }
6126  default:
6127  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6128  }
6129  }
6130  case value_variant_type::Type::Type7: {
6131  switch(arg2.m_type)
6132  {
6133  case value_variant_type::Type::Type0: {
6134  return functor(
6135  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
6136  }
6137  case value_variant_type::Type::Type1: {
6138  return functor(
6139  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
6140  }
6141  case value_variant_type::Type::Type2: {
6142  return functor(
6143  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
6144  }
6145  case value_variant_type::Type::Type3: {
6146  return functor(
6147  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
6148  }
6149  case value_variant_type::Type::Type4: {
6150  return functor(
6151  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
6152  }
6153  case value_variant_type::Type::Type5: {
6154  return functor(
6155  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
6156  }
6157  case value_variant_type::Type::Type6: {
6158  return functor(
6159  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
6160  }
6161  case value_variant_type::Type::Type7: {
6162  return functor(
6163  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
6164  }
6165  case value_variant_type::Type::Type8: {
6166  return functor(
6167  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
6168  }
6169  case value_variant_type::Type::Type9: {
6170  return functor(
6171  arg0.m_impl.m_value7, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
6172  }
6173  default:
6174  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6175  }
6176  }
6177  case value_variant_type::Type::Type8: {
6178  switch(arg2.m_type)
6179  {
6180  case value_variant_type::Type::Type0: {
6181  return functor(
6182  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
6183  }
6184  case value_variant_type::Type::Type1: {
6185  return functor(
6186  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
6187  }
6188  case value_variant_type::Type::Type2: {
6189  return functor(
6190  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
6191  }
6192  case value_variant_type::Type::Type3: {
6193  return functor(
6194  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
6195  }
6196  case value_variant_type::Type::Type4: {
6197  return functor(
6198  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
6199  }
6200  case value_variant_type::Type::Type5: {
6201  return functor(
6202  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
6203  }
6204  case value_variant_type::Type::Type6: {
6205  return functor(
6206  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
6207  }
6208  case value_variant_type::Type::Type7: {
6209  return functor(
6210  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
6211  }
6212  case value_variant_type::Type::Type8: {
6213  return functor(
6214  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
6215  }
6216  case value_variant_type::Type::Type9: {
6217  return functor(
6218  arg0.m_impl.m_value7, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
6219  }
6220  default:
6221  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6222  }
6223  }
6224  case value_variant_type::Type::Type9: {
6225  switch(arg2.m_type)
6226  {
6227  case value_variant_type::Type::Type0: {
6228  return functor(
6229  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
6230  }
6231  case value_variant_type::Type::Type1: {
6232  return functor(
6233  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
6234  }
6235  case value_variant_type::Type::Type2: {
6236  return functor(
6237  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
6238  }
6239  case value_variant_type::Type::Type3: {
6240  return functor(
6241  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
6242  }
6243  case value_variant_type::Type::Type4: {
6244  return functor(
6245  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
6246  }
6247  case value_variant_type::Type::Type5: {
6248  return functor(
6249  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
6250  }
6251  case value_variant_type::Type::Type6: {
6252  return functor(
6253  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
6254  }
6255  case value_variant_type::Type::Type7: {
6256  return functor(
6257  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
6258  }
6259  case value_variant_type::Type::Type8: {
6260  return functor(
6261  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
6262  }
6263  case value_variant_type::Type::Type9: {
6264  return functor(
6265  arg0.m_impl.m_value7, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
6266  }
6267  default:
6268  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6269  }
6270  }
6271  default:
6272  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6273  }
6274  }
6275  case value_variant_type::Type::Type8: {
6276  switch(arg1.m_type)
6277  {
6278  case value_variant_type::Type::Type0: {
6279  switch(arg2.m_type)
6280  {
6281  case value_variant_type::Type::Type0: {
6282  return functor(
6283  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
6284  }
6285  case value_variant_type::Type::Type1: {
6286  return functor(
6287  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
6288  }
6289  case value_variant_type::Type::Type2: {
6290  return functor(
6291  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
6292  }
6293  case value_variant_type::Type::Type3: {
6294  return functor(
6295  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
6296  }
6297  case value_variant_type::Type::Type4: {
6298  return functor(
6299  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
6300  }
6301  case value_variant_type::Type::Type5: {
6302  return functor(
6303  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
6304  }
6305  case value_variant_type::Type::Type6: {
6306  return functor(
6307  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
6308  }
6309  case value_variant_type::Type::Type7: {
6310  return functor(
6311  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
6312  }
6313  case value_variant_type::Type::Type8: {
6314  return functor(
6315  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
6316  }
6317  case value_variant_type::Type::Type9: {
6318  return functor(
6319  arg0.m_impl.m_value8, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
6320  }
6321  default:
6322  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6323  }
6324  }
6325  case value_variant_type::Type::Type1: {
6326  switch(arg2.m_type)
6327  {
6328  case value_variant_type::Type::Type0: {
6329  return functor(
6330  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
6331  }
6332  case value_variant_type::Type::Type1: {
6333  return functor(
6334  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
6335  }
6336  case value_variant_type::Type::Type2: {
6337  return functor(
6338  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
6339  }
6340  case value_variant_type::Type::Type3: {
6341  return functor(
6342  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
6343  }
6344  case value_variant_type::Type::Type4: {
6345  return functor(
6346  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
6347  }
6348  case value_variant_type::Type::Type5: {
6349  return functor(
6350  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
6351  }
6352  case value_variant_type::Type::Type6: {
6353  return functor(
6354  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
6355  }
6356  case value_variant_type::Type::Type7: {
6357  return functor(
6358  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
6359  }
6360  case value_variant_type::Type::Type8: {
6361  return functor(
6362  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
6363  }
6364  case value_variant_type::Type::Type9: {
6365  return functor(
6366  arg0.m_impl.m_value8, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
6367  }
6368  default:
6369  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6370  }
6371  }
6372  case value_variant_type::Type::Type2: {
6373  switch(arg2.m_type)
6374  {
6375  case value_variant_type::Type::Type0: {
6376  return functor(
6377  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
6378  }
6379  case value_variant_type::Type::Type1: {
6380  return functor(
6381  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
6382  }
6383  case value_variant_type::Type::Type2: {
6384  return functor(
6385  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
6386  }
6387  case value_variant_type::Type::Type3: {
6388  return functor(
6389  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
6390  }
6391  case value_variant_type::Type::Type4: {
6392  return functor(
6393  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
6394  }
6395  case value_variant_type::Type::Type5: {
6396  return functor(
6397  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
6398  }
6399  case value_variant_type::Type::Type6: {
6400  return functor(
6401  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
6402  }
6403  case value_variant_type::Type::Type7: {
6404  return functor(
6405  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
6406  }
6407  case value_variant_type::Type::Type8: {
6408  return functor(
6409  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
6410  }
6411  case value_variant_type::Type::Type9: {
6412  return functor(
6413  arg0.m_impl.m_value8, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
6414  }
6415  default:
6416  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6417  }
6418  }
6419  case value_variant_type::Type::Type3: {
6420  switch(arg2.m_type)
6421  {
6422  case value_variant_type::Type::Type0: {
6423  return functor(
6424  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
6425  }
6426  case value_variant_type::Type::Type1: {
6427  return functor(
6428  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
6429  }
6430  case value_variant_type::Type::Type2: {
6431  return functor(
6432  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
6433  }
6434  case value_variant_type::Type::Type3: {
6435  return functor(
6436  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
6437  }
6438  case value_variant_type::Type::Type4: {
6439  return functor(
6440  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
6441  }
6442  case value_variant_type::Type::Type5: {
6443  return functor(
6444  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
6445  }
6446  case value_variant_type::Type::Type6: {
6447  return functor(
6448  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
6449  }
6450  case value_variant_type::Type::Type7: {
6451  return functor(
6452  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
6453  }
6454  case value_variant_type::Type::Type8: {
6455  return functor(
6456  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
6457  }
6458  case value_variant_type::Type::Type9: {
6459  return functor(
6460  arg0.m_impl.m_value8, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
6461  }
6462  default:
6463  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6464  }
6465  }
6466  case value_variant_type::Type::Type4: {
6467  switch(arg2.m_type)
6468  {
6469  case value_variant_type::Type::Type0: {
6470  return functor(
6471  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
6472  }
6473  case value_variant_type::Type::Type1: {
6474  return functor(
6475  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
6476  }
6477  case value_variant_type::Type::Type2: {
6478  return functor(
6479  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
6480  }
6481  case value_variant_type::Type::Type3: {
6482  return functor(
6483  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
6484  }
6485  case value_variant_type::Type::Type4: {
6486  return functor(
6487  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
6488  }
6489  case value_variant_type::Type::Type5: {
6490  return functor(
6491  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
6492  }
6493  case value_variant_type::Type::Type6: {
6494  return functor(
6495  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
6496  }
6497  case value_variant_type::Type::Type7: {
6498  return functor(
6499  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
6500  }
6501  case value_variant_type::Type::Type8: {
6502  return functor(
6503  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
6504  }
6505  case value_variant_type::Type::Type9: {
6506  return functor(
6507  arg0.m_impl.m_value8, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
6508  }
6509  default:
6510  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6511  }
6512  }
6513  case value_variant_type::Type::Type5: {
6514  switch(arg2.m_type)
6515  {
6516  case value_variant_type::Type::Type0: {
6517  return functor(
6518  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
6519  }
6520  case value_variant_type::Type::Type1: {
6521  return functor(
6522  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
6523  }
6524  case value_variant_type::Type::Type2: {
6525  return functor(
6526  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
6527  }
6528  case value_variant_type::Type::Type3: {
6529  return functor(
6530  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
6531  }
6532  case value_variant_type::Type::Type4: {
6533  return functor(
6534  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
6535  }
6536  case value_variant_type::Type::Type5: {
6537  return functor(
6538  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
6539  }
6540  case value_variant_type::Type::Type6: {
6541  return functor(
6542  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
6543  }
6544  case value_variant_type::Type::Type7: {
6545  return functor(
6546  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
6547  }
6548  case value_variant_type::Type::Type8: {
6549  return functor(
6550  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
6551  }
6552  case value_variant_type::Type::Type9: {
6553  return functor(
6554  arg0.m_impl.m_value8, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
6555  }
6556  default:
6557  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6558  }
6559  }
6560  case value_variant_type::Type::Type6: {
6561  switch(arg2.m_type)
6562  {
6563  case value_variant_type::Type::Type0: {
6564  return functor(
6565  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
6566  }
6567  case value_variant_type::Type::Type1: {
6568  return functor(
6569  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
6570  }
6571  case value_variant_type::Type::Type2: {
6572  return functor(
6573  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
6574  }
6575  case value_variant_type::Type::Type3: {
6576  return functor(
6577  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
6578  }
6579  case value_variant_type::Type::Type4: {
6580  return functor(
6581  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
6582  }
6583  case value_variant_type::Type::Type5: {
6584  return functor(
6585  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
6586  }
6587  case value_variant_type::Type::Type6: {
6588  return functor(
6589  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
6590  }
6591  case value_variant_type::Type::Type7: {
6592  return functor(
6593  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
6594  }
6595  case value_variant_type::Type::Type8: {
6596  return functor(
6597  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
6598  }
6599  case value_variant_type::Type::Type9: {
6600  return functor(
6601  arg0.m_impl.m_value8, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
6602  }
6603  default:
6604  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6605  }
6606  }
6607  case value_variant_type::Type::Type7: {
6608  switch(arg2.m_type)
6609  {
6610  case value_variant_type::Type::Type0: {
6611  return functor(
6612  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
6613  }
6614  case value_variant_type::Type::Type1: {
6615  return functor(
6616  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
6617  }
6618  case value_variant_type::Type::Type2: {
6619  return functor(
6620  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
6621  }
6622  case value_variant_type::Type::Type3: {
6623  return functor(
6624  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
6625  }
6626  case value_variant_type::Type::Type4: {
6627  return functor(
6628  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
6629  }
6630  case value_variant_type::Type::Type5: {
6631  return functor(
6632  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
6633  }
6634  case value_variant_type::Type::Type6: {
6635  return functor(
6636  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
6637  }
6638  case value_variant_type::Type::Type7: {
6639  return functor(
6640  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
6641  }
6642  case value_variant_type::Type::Type8: {
6643  return functor(
6644  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
6645  }
6646  case value_variant_type::Type::Type9: {
6647  return functor(
6648  arg0.m_impl.m_value8, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
6649  }
6650  default:
6651  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6652  }
6653  }
6654  case value_variant_type::Type::Type8: {
6655  switch(arg2.m_type)
6656  {
6657  case value_variant_type::Type::Type0: {
6658  return functor(
6659  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
6660  }
6661  case value_variant_type::Type::Type1: {
6662  return functor(
6663  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
6664  }
6665  case value_variant_type::Type::Type2: {
6666  return functor(
6667  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
6668  }
6669  case value_variant_type::Type::Type3: {
6670  return functor(
6671  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
6672  }
6673  case value_variant_type::Type::Type4: {
6674  return functor(
6675  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
6676  }
6677  case value_variant_type::Type::Type5: {
6678  return functor(
6679  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
6680  }
6681  case value_variant_type::Type::Type6: {
6682  return functor(
6683  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
6684  }
6685  case value_variant_type::Type::Type7: {
6686  return functor(
6687  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
6688  }
6689  case value_variant_type::Type::Type8: {
6690  return functor(
6691  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
6692  }
6693  case value_variant_type::Type::Type9: {
6694  return functor(
6695  arg0.m_impl.m_value8, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
6696  }
6697  default:
6698  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6699  }
6700  }
6701  case value_variant_type::Type::Type9: {
6702  switch(arg2.m_type)
6703  {
6704  case value_variant_type::Type::Type0: {
6705  return functor(
6706  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
6707  }
6708  case value_variant_type::Type::Type1: {
6709  return functor(
6710  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
6711  }
6712  case value_variant_type::Type::Type2: {
6713  return functor(
6714  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
6715  }
6716  case value_variant_type::Type::Type3: {
6717  return functor(
6718  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
6719  }
6720  case value_variant_type::Type::Type4: {
6721  return functor(
6722  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
6723  }
6724  case value_variant_type::Type::Type5: {
6725  return functor(
6726  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
6727  }
6728  case value_variant_type::Type::Type6: {
6729  return functor(
6730  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
6731  }
6732  case value_variant_type::Type::Type7: {
6733  return functor(
6734  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
6735  }
6736  case value_variant_type::Type::Type8: {
6737  return functor(
6738  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
6739  }
6740  case value_variant_type::Type::Type9: {
6741  return functor(
6742  arg0.m_impl.m_value8, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
6743  }
6744  default:
6745  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6746  }
6747  }
6748  default:
6749  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6750  }
6751  }
6752  case value_variant_type::Type::Type9: {
6753  switch(arg1.m_type)
6754  {
6755  case value_variant_type::Type::Type0: {
6756  switch(arg2.m_type)
6757  {
6758  case value_variant_type::Type::Type0: {
6759  return functor(
6760  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value0);
6761  }
6762  case value_variant_type::Type::Type1: {
6763  return functor(
6764  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value1);
6765  }
6766  case value_variant_type::Type::Type2: {
6767  return functor(
6768  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value2);
6769  }
6770  case value_variant_type::Type::Type3: {
6771  return functor(
6772  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value3);
6773  }
6774  case value_variant_type::Type::Type4: {
6775  return functor(
6776  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value4);
6777  }
6778  case value_variant_type::Type::Type5: {
6779  return functor(
6780  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value5);
6781  }
6782  case value_variant_type::Type::Type6: {
6783  return functor(
6784  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value6);
6785  }
6786  case value_variant_type::Type::Type7: {
6787  return functor(
6788  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value7);
6789  }
6790  case value_variant_type::Type::Type8: {
6791  return functor(
6792  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value8);
6793  }
6794  case value_variant_type::Type::Type9: {
6795  return functor(
6796  arg0.m_impl.m_value9, arg1.m_impl.m_value0, arg2.m_impl.m_value9);
6797  }
6798  default:
6799  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6800  }
6801  }
6802  case value_variant_type::Type::Type1: {
6803  switch(arg2.m_type)
6804  {
6805  case value_variant_type::Type::Type0: {
6806  return functor(
6807  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value0);
6808  }
6809  case value_variant_type::Type::Type1: {
6810  return functor(
6811  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value1);
6812  }
6813  case value_variant_type::Type::Type2: {
6814  return functor(
6815  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value2);
6816  }
6817  case value_variant_type::Type::Type3: {
6818  return functor(
6819  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value3);
6820  }
6821  case value_variant_type::Type::Type4: {
6822  return functor(
6823  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value4);
6824  }
6825  case value_variant_type::Type::Type5: {
6826  return functor(
6827  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value5);
6828  }
6829  case value_variant_type::Type::Type6: {
6830  return functor(
6831  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value6);
6832  }
6833  case value_variant_type::Type::Type7: {
6834  return functor(
6835  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value7);
6836  }
6837  case value_variant_type::Type::Type8: {
6838  return functor(
6839  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value8);
6840  }
6841  case value_variant_type::Type::Type9: {
6842  return functor(
6843  arg0.m_impl.m_value9, arg1.m_impl.m_value1, arg2.m_impl.m_value9);
6844  }
6845  default:
6846  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6847  }
6848  }
6849  case value_variant_type::Type::Type2: {
6850  switch(arg2.m_type)
6851  {
6852  case value_variant_type::Type::Type0: {
6853  return functor(
6854  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value0);
6855  }
6856  case value_variant_type::Type::Type1: {
6857  return functor(
6858  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value1);
6859  }
6860  case value_variant_type::Type::Type2: {
6861  return functor(
6862  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value2);
6863  }
6864  case value_variant_type::Type::Type3: {
6865  return functor(
6866  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value3);
6867  }
6868  case value_variant_type::Type::Type4: {
6869  return functor(
6870  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value4);
6871  }
6872  case value_variant_type::Type::Type5: {
6873  return functor(
6874  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value5);
6875  }
6876  case value_variant_type::Type::Type6: {
6877  return functor(
6878  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value6);
6879  }
6880  case value_variant_type::Type::Type7: {
6881  return functor(
6882  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value7);
6883  }
6884  case value_variant_type::Type::Type8: {
6885  return functor(
6886  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value8);
6887  }
6888  case value_variant_type::Type::Type9: {
6889  return functor(
6890  arg0.m_impl.m_value9, arg1.m_impl.m_value2, arg2.m_impl.m_value9);
6891  }
6892  default:
6893  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6894  }
6895  }
6896  case value_variant_type::Type::Type3: {
6897  switch(arg2.m_type)
6898  {
6899  case value_variant_type::Type::Type0: {
6900  return functor(
6901  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value0);
6902  }
6903  case value_variant_type::Type::Type1: {
6904  return functor(
6905  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value1);
6906  }
6907  case value_variant_type::Type::Type2: {
6908  return functor(
6909  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value2);
6910  }
6911  case value_variant_type::Type::Type3: {
6912  return functor(
6913  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value3);
6914  }
6915  case value_variant_type::Type::Type4: {
6916  return functor(
6917  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value4);
6918  }
6919  case value_variant_type::Type::Type5: {
6920  return functor(
6921  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value5);
6922  }
6923  case value_variant_type::Type::Type6: {
6924  return functor(
6925  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value6);
6926  }
6927  case value_variant_type::Type::Type7: {
6928  return functor(
6929  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value7);
6930  }
6931  case value_variant_type::Type::Type8: {
6932  return functor(
6933  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value8);
6934  }
6935  case value_variant_type::Type::Type9: {
6936  return functor(
6937  arg0.m_impl.m_value9, arg1.m_impl.m_value3, arg2.m_impl.m_value9);
6938  }
6939  default:
6940  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6941  }
6942  }
6943  case value_variant_type::Type::Type4: {
6944  switch(arg2.m_type)
6945  {
6946  case value_variant_type::Type::Type0: {
6947  return functor(
6948  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value0);
6949  }
6950  case value_variant_type::Type::Type1: {
6951  return functor(
6952  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value1);
6953  }
6954  case value_variant_type::Type::Type2: {
6955  return functor(
6956  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value2);
6957  }
6958  case value_variant_type::Type::Type3: {
6959  return functor(
6960  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value3);
6961  }
6962  case value_variant_type::Type::Type4: {
6963  return functor(
6964  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value4);
6965  }
6966  case value_variant_type::Type::Type5: {
6967  return functor(
6968  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value5);
6969  }
6970  case value_variant_type::Type::Type6: {
6971  return functor(
6972  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value6);
6973  }
6974  case value_variant_type::Type::Type7: {
6975  return functor(
6976  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value7);
6977  }
6978  case value_variant_type::Type::Type8: {
6979  return functor(
6980  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value8);
6981  }
6982  case value_variant_type::Type::Type9: {
6983  return functor(
6984  arg0.m_impl.m_value9, arg1.m_impl.m_value4, arg2.m_impl.m_value9);
6985  }
6986  default:
6987  ossia_do_throw(std::runtime_error, "value_variant: bad type");
6988  }
6989  }
6990  case value_variant_type::Type::Type5: {
6991  switch(arg2.m_type)
6992  {
6993  case value_variant_type::Type::Type0: {
6994  return functor(
6995  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value0);
6996  }
6997  case value_variant_type::Type::Type1: {
6998  return functor(
6999  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value1);
7000  }
7001  case value_variant_type::Type::Type2: {
7002  return functor(
7003  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value2);
7004  }
7005  case value_variant_type::Type::Type3: {
7006  return functor(
7007  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value3);
7008  }
7009  case value_variant_type::Type::Type4: {
7010  return functor(
7011  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value4);
7012  }
7013  case value_variant_type::Type::Type5: {
7014  return functor(
7015  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value5);
7016  }
7017  case value_variant_type::Type::Type6: {
7018  return functor(
7019  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value6);
7020  }
7021  case value_variant_type::Type::Type7: {
7022  return functor(
7023  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value7);
7024  }
7025  case value_variant_type::Type::Type8: {
7026  return functor(
7027  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value8);
7028  }
7029  case value_variant_type::Type::Type9: {
7030  return functor(
7031  arg0.m_impl.m_value9, arg1.m_impl.m_value5, arg2.m_impl.m_value9);
7032  }
7033  default:
7034  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7035  }
7036  }
7037  case value_variant_type::Type::Type6: {
7038  switch(arg2.m_type)
7039  {
7040  case value_variant_type::Type::Type0: {
7041  return functor(
7042  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value0);
7043  }
7044  case value_variant_type::Type::Type1: {
7045  return functor(
7046  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value1);
7047  }
7048  case value_variant_type::Type::Type2: {
7049  return functor(
7050  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value2);
7051  }
7052  case value_variant_type::Type::Type3: {
7053  return functor(
7054  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value3);
7055  }
7056  case value_variant_type::Type::Type4: {
7057  return functor(
7058  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value4);
7059  }
7060  case value_variant_type::Type::Type5: {
7061  return functor(
7062  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value5);
7063  }
7064  case value_variant_type::Type::Type6: {
7065  return functor(
7066  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value6);
7067  }
7068  case value_variant_type::Type::Type7: {
7069  return functor(
7070  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value7);
7071  }
7072  case value_variant_type::Type::Type8: {
7073  return functor(
7074  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value8);
7075  }
7076  case value_variant_type::Type::Type9: {
7077  return functor(
7078  arg0.m_impl.m_value9, arg1.m_impl.m_value6, arg2.m_impl.m_value9);
7079  }
7080  default:
7081  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7082  }
7083  }
7084  case value_variant_type::Type::Type7: {
7085  switch(arg2.m_type)
7086  {
7087  case value_variant_type::Type::Type0: {
7088  return functor(
7089  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value0);
7090  }
7091  case value_variant_type::Type::Type1: {
7092  return functor(
7093  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value1);
7094  }
7095  case value_variant_type::Type::Type2: {
7096  return functor(
7097  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value2);
7098  }
7099  case value_variant_type::Type::Type3: {
7100  return functor(
7101  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value3);
7102  }
7103  case value_variant_type::Type::Type4: {
7104  return functor(
7105  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value4);
7106  }
7107  case value_variant_type::Type::Type5: {
7108  return functor(
7109  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value5);
7110  }
7111  case value_variant_type::Type::Type6: {
7112  return functor(
7113  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value6);
7114  }
7115  case value_variant_type::Type::Type7: {
7116  return functor(
7117  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value7);
7118  }
7119  case value_variant_type::Type::Type8: {
7120  return functor(
7121  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value8);
7122  }
7123  case value_variant_type::Type::Type9: {
7124  return functor(
7125  arg0.m_impl.m_value9, arg1.m_impl.m_value7, arg2.m_impl.m_value9);
7126  }
7127  default:
7128  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7129  }
7130  }
7131  case value_variant_type::Type::Type8: {
7132  switch(arg2.m_type)
7133  {
7134  case value_variant_type::Type::Type0: {
7135  return functor(
7136  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value0);
7137  }
7138  case value_variant_type::Type::Type1: {
7139  return functor(
7140  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value1);
7141  }
7142  case value_variant_type::Type::Type2: {
7143  return functor(
7144  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value2);
7145  }
7146  case value_variant_type::Type::Type3: {
7147  return functor(
7148  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value3);
7149  }
7150  case value_variant_type::Type::Type4: {
7151  return functor(
7152  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value4);
7153  }
7154  case value_variant_type::Type::Type5: {
7155  return functor(
7156  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value5);
7157  }
7158  case value_variant_type::Type::Type6: {
7159  return functor(
7160  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value6);
7161  }
7162  case value_variant_type::Type::Type7: {
7163  return functor(
7164  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value7);
7165  }
7166  case value_variant_type::Type::Type8: {
7167  return functor(
7168  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value8);
7169  }
7170  case value_variant_type::Type::Type9: {
7171  return functor(
7172  arg0.m_impl.m_value9, arg1.m_impl.m_value8, arg2.m_impl.m_value9);
7173  }
7174  default:
7175  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7176  }
7177  }
7178  case value_variant_type::Type::Type9: {
7179  switch(arg2.m_type)
7180  {
7181  case value_variant_type::Type::Type0: {
7182  return functor(
7183  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value0);
7184  }
7185  case value_variant_type::Type::Type1: {
7186  return functor(
7187  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value1);
7188  }
7189  case value_variant_type::Type::Type2: {
7190  return functor(
7191  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value2);
7192  }
7193  case value_variant_type::Type::Type3: {
7194  return functor(
7195  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value3);
7196  }
7197  case value_variant_type::Type::Type4: {
7198  return functor(
7199  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value4);
7200  }
7201  case value_variant_type::Type::Type5: {
7202  return functor(
7203  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value5);
7204  }
7205  case value_variant_type::Type::Type6: {
7206  return functor(
7207  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value6);
7208  }
7209  case value_variant_type::Type::Type7: {
7210  return functor(
7211  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value7);
7212  }
7213  case value_variant_type::Type::Type8: {
7214  return functor(
7215  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value8);
7216  }
7217  case value_variant_type::Type::Type9: {
7218  return functor(
7219  arg0.m_impl.m_value9, arg1.m_impl.m_value9, arg2.m_impl.m_value9);
7220  }
7221  default:
7222  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7223  }
7224  }
7225  default:
7226  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7227  }
7228  }
7229  default:
7230  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7231  }
7232 }
7233 template <typename Functor>
7234 auto apply(
7235  Functor&& functor, value_variant_type&& arg0, const value_variant_type& arg1,
7236  const value_variant_type& arg2)
7237 {
7238  switch(arg0.m_type)
7239  {
7240  case value_variant_type::Type::Type0: {
7241  switch(arg1.m_type)
7242  {
7243  case value_variant_type::Type::Type0: {
7244  switch(arg2.m_type)
7245  {
7246  case value_variant_type::Type::Type0: {
7247  return functor(
7248  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7249  arg2.m_impl.m_value0);
7250  }
7251  case value_variant_type::Type::Type1: {
7252  return functor(
7253  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7254  arg2.m_impl.m_value1);
7255  }
7256  case value_variant_type::Type::Type2: {
7257  return functor(
7258  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7259  arg2.m_impl.m_value2);
7260  }
7261  case value_variant_type::Type::Type3: {
7262  return functor(
7263  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7264  arg2.m_impl.m_value3);
7265  }
7266  case value_variant_type::Type::Type4: {
7267  return functor(
7268  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7269  arg2.m_impl.m_value4);
7270  }
7271  case value_variant_type::Type::Type5: {
7272  return functor(
7273  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7274  arg2.m_impl.m_value5);
7275  }
7276  case value_variant_type::Type::Type6: {
7277  return functor(
7278  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7279  arg2.m_impl.m_value6);
7280  }
7281  case value_variant_type::Type::Type7: {
7282  return functor(
7283  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7284  arg2.m_impl.m_value7);
7285  }
7286  case value_variant_type::Type::Type8: {
7287  return functor(
7288  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7289  arg2.m_impl.m_value8);
7290  }
7291  case value_variant_type::Type::Type9: {
7292  return functor(
7293  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value0,
7294  arg2.m_impl.m_value9);
7295  }
7296  default:
7297  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7298  }
7299  }
7300  case value_variant_type::Type::Type1: {
7301  switch(arg2.m_type)
7302  {
7303  case value_variant_type::Type::Type0: {
7304  return functor(
7305  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7306  arg2.m_impl.m_value0);
7307  }
7308  case value_variant_type::Type::Type1: {
7309  return functor(
7310  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7311  arg2.m_impl.m_value1);
7312  }
7313  case value_variant_type::Type::Type2: {
7314  return functor(
7315  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7316  arg2.m_impl.m_value2);
7317  }
7318  case value_variant_type::Type::Type3: {
7319  return functor(
7320  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7321  arg2.m_impl.m_value3);
7322  }
7323  case value_variant_type::Type::Type4: {
7324  return functor(
7325  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7326  arg2.m_impl.m_value4);
7327  }
7328  case value_variant_type::Type::Type5: {
7329  return functor(
7330  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7331  arg2.m_impl.m_value5);
7332  }
7333  case value_variant_type::Type::Type6: {
7334  return functor(
7335  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7336  arg2.m_impl.m_value6);
7337  }
7338  case value_variant_type::Type::Type7: {
7339  return functor(
7340  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7341  arg2.m_impl.m_value7);
7342  }
7343  case value_variant_type::Type::Type8: {
7344  return functor(
7345  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7346  arg2.m_impl.m_value8);
7347  }
7348  case value_variant_type::Type::Type9: {
7349  return functor(
7350  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value1,
7351  arg2.m_impl.m_value9);
7352  }
7353  default:
7354  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7355  }
7356  }
7357  case value_variant_type::Type::Type2: {
7358  switch(arg2.m_type)
7359  {
7360  case value_variant_type::Type::Type0: {
7361  return functor(
7362  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7363  arg2.m_impl.m_value0);
7364  }
7365  case value_variant_type::Type::Type1: {
7366  return functor(
7367  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7368  arg2.m_impl.m_value1);
7369  }
7370  case value_variant_type::Type::Type2: {
7371  return functor(
7372  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7373  arg2.m_impl.m_value2);
7374  }
7375  case value_variant_type::Type::Type3: {
7376  return functor(
7377  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7378  arg2.m_impl.m_value3);
7379  }
7380  case value_variant_type::Type::Type4: {
7381  return functor(
7382  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7383  arg2.m_impl.m_value4);
7384  }
7385  case value_variant_type::Type::Type5: {
7386  return functor(
7387  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7388  arg2.m_impl.m_value5);
7389  }
7390  case value_variant_type::Type::Type6: {
7391  return functor(
7392  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7393  arg2.m_impl.m_value6);
7394  }
7395  case value_variant_type::Type::Type7: {
7396  return functor(
7397  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7398  arg2.m_impl.m_value7);
7399  }
7400  case value_variant_type::Type::Type8: {
7401  return functor(
7402  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7403  arg2.m_impl.m_value8);
7404  }
7405  case value_variant_type::Type::Type9: {
7406  return functor(
7407  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value2,
7408  arg2.m_impl.m_value9);
7409  }
7410  default:
7411  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7412  }
7413  }
7414  case value_variant_type::Type::Type3: {
7415  switch(arg2.m_type)
7416  {
7417  case value_variant_type::Type::Type0: {
7418  return functor(
7419  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7420  arg2.m_impl.m_value0);
7421  }
7422  case value_variant_type::Type::Type1: {
7423  return functor(
7424  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7425  arg2.m_impl.m_value1);
7426  }
7427  case value_variant_type::Type::Type2: {
7428  return functor(
7429  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7430  arg2.m_impl.m_value2);
7431  }
7432  case value_variant_type::Type::Type3: {
7433  return functor(
7434  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7435  arg2.m_impl.m_value3);
7436  }
7437  case value_variant_type::Type::Type4: {
7438  return functor(
7439  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7440  arg2.m_impl.m_value4);
7441  }
7442  case value_variant_type::Type::Type5: {
7443  return functor(
7444  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7445  arg2.m_impl.m_value5);
7446  }
7447  case value_variant_type::Type::Type6: {
7448  return functor(
7449  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7450  arg2.m_impl.m_value6);
7451  }
7452  case value_variant_type::Type::Type7: {
7453  return functor(
7454  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7455  arg2.m_impl.m_value7);
7456  }
7457  case value_variant_type::Type::Type8: {
7458  return functor(
7459  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7460  arg2.m_impl.m_value8);
7461  }
7462  case value_variant_type::Type::Type9: {
7463  return functor(
7464  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value3,
7465  arg2.m_impl.m_value9);
7466  }
7467  default:
7468  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7469  }
7470  }
7471  case value_variant_type::Type::Type4: {
7472  switch(arg2.m_type)
7473  {
7474  case value_variant_type::Type::Type0: {
7475  return functor(
7476  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7477  arg2.m_impl.m_value0);
7478  }
7479  case value_variant_type::Type::Type1: {
7480  return functor(
7481  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7482  arg2.m_impl.m_value1);
7483  }
7484  case value_variant_type::Type::Type2: {
7485  return functor(
7486  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7487  arg2.m_impl.m_value2);
7488  }
7489  case value_variant_type::Type::Type3: {
7490  return functor(
7491  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7492  arg2.m_impl.m_value3);
7493  }
7494  case value_variant_type::Type::Type4: {
7495  return functor(
7496  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7497  arg2.m_impl.m_value4);
7498  }
7499  case value_variant_type::Type::Type5: {
7500  return functor(
7501  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7502  arg2.m_impl.m_value5);
7503  }
7504  case value_variant_type::Type::Type6: {
7505  return functor(
7506  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7507  arg2.m_impl.m_value6);
7508  }
7509  case value_variant_type::Type::Type7: {
7510  return functor(
7511  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7512  arg2.m_impl.m_value7);
7513  }
7514  case value_variant_type::Type::Type8: {
7515  return functor(
7516  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7517  arg2.m_impl.m_value8);
7518  }
7519  case value_variant_type::Type::Type9: {
7520  return functor(
7521  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value4,
7522  arg2.m_impl.m_value9);
7523  }
7524  default:
7525  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7526  }
7527  }
7528  case value_variant_type::Type::Type5: {
7529  switch(arg2.m_type)
7530  {
7531  case value_variant_type::Type::Type0: {
7532  return functor(
7533  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7534  arg2.m_impl.m_value0);
7535  }
7536  case value_variant_type::Type::Type1: {
7537  return functor(
7538  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7539  arg2.m_impl.m_value1);
7540  }
7541  case value_variant_type::Type::Type2: {
7542  return functor(
7543  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7544  arg2.m_impl.m_value2);
7545  }
7546  case value_variant_type::Type::Type3: {
7547  return functor(
7548  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7549  arg2.m_impl.m_value3);
7550  }
7551  case value_variant_type::Type::Type4: {
7552  return functor(
7553  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7554  arg2.m_impl.m_value4);
7555  }
7556  case value_variant_type::Type::Type5: {
7557  return functor(
7558  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7559  arg2.m_impl.m_value5);
7560  }
7561  case value_variant_type::Type::Type6: {
7562  return functor(
7563  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7564  arg2.m_impl.m_value6);
7565  }
7566  case value_variant_type::Type::Type7: {
7567  return functor(
7568  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7569  arg2.m_impl.m_value7);
7570  }
7571  case value_variant_type::Type::Type8: {
7572  return functor(
7573  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7574  arg2.m_impl.m_value8);
7575  }
7576  case value_variant_type::Type::Type9: {
7577  return functor(
7578  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value5,
7579  arg2.m_impl.m_value9);
7580  }
7581  default:
7582  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7583  }
7584  }
7585  case value_variant_type::Type::Type6: {
7586  switch(arg2.m_type)
7587  {
7588  case value_variant_type::Type::Type0: {
7589  return functor(
7590  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7591  arg2.m_impl.m_value0);
7592  }
7593  case value_variant_type::Type::Type1: {
7594  return functor(
7595  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7596  arg2.m_impl.m_value1);
7597  }
7598  case value_variant_type::Type::Type2: {
7599  return functor(
7600  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7601  arg2.m_impl.m_value2);
7602  }
7603  case value_variant_type::Type::Type3: {
7604  return functor(
7605  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7606  arg2.m_impl.m_value3);
7607  }
7608  case value_variant_type::Type::Type4: {
7609  return functor(
7610  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7611  arg2.m_impl.m_value4);
7612  }
7613  case value_variant_type::Type::Type5: {
7614  return functor(
7615  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7616  arg2.m_impl.m_value5);
7617  }
7618  case value_variant_type::Type::Type6: {
7619  return functor(
7620  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7621  arg2.m_impl.m_value6);
7622  }
7623  case value_variant_type::Type::Type7: {
7624  return functor(
7625  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7626  arg2.m_impl.m_value7);
7627  }
7628  case value_variant_type::Type::Type8: {
7629  return functor(
7630  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7631  arg2.m_impl.m_value8);
7632  }
7633  case value_variant_type::Type::Type9: {
7634  return functor(
7635  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value6,
7636  arg2.m_impl.m_value9);
7637  }
7638  default:
7639  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7640  }
7641  }
7642  case value_variant_type::Type::Type7: {
7643  switch(arg2.m_type)
7644  {
7645  case value_variant_type::Type::Type0: {
7646  return functor(
7647  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7648  arg2.m_impl.m_value0);
7649  }
7650  case value_variant_type::Type::Type1: {
7651  return functor(
7652  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7653  arg2.m_impl.m_value1);
7654  }
7655  case value_variant_type::Type::Type2: {
7656  return functor(
7657  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7658  arg2.m_impl.m_value2);
7659  }
7660  case value_variant_type::Type::Type3: {
7661  return functor(
7662  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7663  arg2.m_impl.m_value3);
7664  }
7665  case value_variant_type::Type::Type4: {
7666  return functor(
7667  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7668  arg2.m_impl.m_value4);
7669  }
7670  case value_variant_type::Type::Type5: {
7671  return functor(
7672  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7673  arg2.m_impl.m_value5);
7674  }
7675  case value_variant_type::Type::Type6: {
7676  return functor(
7677  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7678  arg2.m_impl.m_value6);
7679  }
7680  case value_variant_type::Type::Type7: {
7681  return functor(
7682  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7683  arg2.m_impl.m_value7);
7684  }
7685  case value_variant_type::Type::Type8: {
7686  return functor(
7687  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7688  arg2.m_impl.m_value8);
7689  }
7690  case value_variant_type::Type::Type9: {
7691  return functor(
7692  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value7,
7693  arg2.m_impl.m_value9);
7694  }
7695  default:
7696  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7697  }
7698  }
7699  case value_variant_type::Type::Type8: {
7700  switch(arg2.m_type)
7701  {
7702  case value_variant_type::Type::Type0: {
7703  return functor(
7704  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7705  arg2.m_impl.m_value0);
7706  }
7707  case value_variant_type::Type::Type1: {
7708  return functor(
7709  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7710  arg2.m_impl.m_value1);
7711  }
7712  case value_variant_type::Type::Type2: {
7713  return functor(
7714  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7715  arg2.m_impl.m_value2);
7716  }
7717  case value_variant_type::Type::Type3: {
7718  return functor(
7719  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7720  arg2.m_impl.m_value3);
7721  }
7722  case value_variant_type::Type::Type4: {
7723  return functor(
7724  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7725  arg2.m_impl.m_value4);
7726  }
7727  case value_variant_type::Type::Type5: {
7728  return functor(
7729  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7730  arg2.m_impl.m_value5);
7731  }
7732  case value_variant_type::Type::Type6: {
7733  return functor(
7734  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7735  arg2.m_impl.m_value6);
7736  }
7737  case value_variant_type::Type::Type7: {
7738  return functor(
7739  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7740  arg2.m_impl.m_value7);
7741  }
7742  case value_variant_type::Type::Type8: {
7743  return functor(
7744  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7745  arg2.m_impl.m_value8);
7746  }
7747  case value_variant_type::Type::Type9: {
7748  return functor(
7749  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value8,
7750  arg2.m_impl.m_value9);
7751  }
7752  default:
7753  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7754  }
7755  }
7756  case value_variant_type::Type::Type9: {
7757  switch(arg2.m_type)
7758  {
7759  case value_variant_type::Type::Type0: {
7760  return functor(
7761  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7762  arg2.m_impl.m_value0);
7763  }
7764  case value_variant_type::Type::Type1: {
7765  return functor(
7766  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7767  arg2.m_impl.m_value1);
7768  }
7769  case value_variant_type::Type::Type2: {
7770  return functor(
7771  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7772  arg2.m_impl.m_value2);
7773  }
7774  case value_variant_type::Type::Type3: {
7775  return functor(
7776  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7777  arg2.m_impl.m_value3);
7778  }
7779  case value_variant_type::Type::Type4: {
7780  return functor(
7781  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7782  arg2.m_impl.m_value4);
7783  }
7784  case value_variant_type::Type::Type5: {
7785  return functor(
7786  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7787  arg2.m_impl.m_value5);
7788  }
7789  case value_variant_type::Type::Type6: {
7790  return functor(
7791  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7792  arg2.m_impl.m_value6);
7793  }
7794  case value_variant_type::Type::Type7: {
7795  return functor(
7796  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7797  arg2.m_impl.m_value7);
7798  }
7799  case value_variant_type::Type::Type8: {
7800  return functor(
7801  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7802  arg2.m_impl.m_value8);
7803  }
7804  case value_variant_type::Type::Type9: {
7805  return functor(
7806  std::move(arg0.m_impl.m_value0), arg1.m_impl.m_value9,
7807  arg2.m_impl.m_value9);
7808  }
7809  default:
7810  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7811  }
7812  }
7813  default:
7814  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7815  }
7816  }
7817  case value_variant_type::Type::Type1: {
7818  switch(arg1.m_type)
7819  {
7820  case value_variant_type::Type::Type0: {
7821  switch(arg2.m_type)
7822  {
7823  case value_variant_type::Type::Type0: {
7824  return functor(
7825  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7826  arg2.m_impl.m_value0);
7827  }
7828  case value_variant_type::Type::Type1: {
7829  return functor(
7830  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7831  arg2.m_impl.m_value1);
7832  }
7833  case value_variant_type::Type::Type2: {
7834  return functor(
7835  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7836  arg2.m_impl.m_value2);
7837  }
7838  case value_variant_type::Type::Type3: {
7839  return functor(
7840  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7841  arg2.m_impl.m_value3);
7842  }
7843  case value_variant_type::Type::Type4: {
7844  return functor(
7845  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7846  arg2.m_impl.m_value4);
7847  }
7848  case value_variant_type::Type::Type5: {
7849  return functor(
7850  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7851  arg2.m_impl.m_value5);
7852  }
7853  case value_variant_type::Type::Type6: {
7854  return functor(
7855  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7856  arg2.m_impl.m_value6);
7857  }
7858  case value_variant_type::Type::Type7: {
7859  return functor(
7860  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7861  arg2.m_impl.m_value7);
7862  }
7863  case value_variant_type::Type::Type8: {
7864  return functor(
7865  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7866  arg2.m_impl.m_value8);
7867  }
7868  case value_variant_type::Type::Type9: {
7869  return functor(
7870  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value0,
7871  arg2.m_impl.m_value9);
7872  }
7873  default:
7874  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7875  }
7876  }
7877  case value_variant_type::Type::Type1: {
7878  switch(arg2.m_type)
7879  {
7880  case value_variant_type::Type::Type0: {
7881  return functor(
7882  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7883  arg2.m_impl.m_value0);
7884  }
7885  case value_variant_type::Type::Type1: {
7886  return functor(
7887  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7888  arg2.m_impl.m_value1);
7889  }
7890  case value_variant_type::Type::Type2: {
7891  return functor(
7892  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7893  arg2.m_impl.m_value2);
7894  }
7895  case value_variant_type::Type::Type3: {
7896  return functor(
7897  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7898  arg2.m_impl.m_value3);
7899  }
7900  case value_variant_type::Type::Type4: {
7901  return functor(
7902  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7903  arg2.m_impl.m_value4);
7904  }
7905  case value_variant_type::Type::Type5: {
7906  return functor(
7907  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7908  arg2.m_impl.m_value5);
7909  }
7910  case value_variant_type::Type::Type6: {
7911  return functor(
7912  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7913  arg2.m_impl.m_value6);
7914  }
7915  case value_variant_type::Type::Type7: {
7916  return functor(
7917  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7918  arg2.m_impl.m_value7);
7919  }
7920  case value_variant_type::Type::Type8: {
7921  return functor(
7922  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7923  arg2.m_impl.m_value8);
7924  }
7925  case value_variant_type::Type::Type9: {
7926  return functor(
7927  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value1,
7928  arg2.m_impl.m_value9);
7929  }
7930  default:
7931  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7932  }
7933  }
7934  case value_variant_type::Type::Type2: {
7935  switch(arg2.m_type)
7936  {
7937  case value_variant_type::Type::Type0: {
7938  return functor(
7939  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7940  arg2.m_impl.m_value0);
7941  }
7942  case value_variant_type::Type::Type1: {
7943  return functor(
7944  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7945  arg2.m_impl.m_value1);
7946  }
7947  case value_variant_type::Type::Type2: {
7948  return functor(
7949  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7950  arg2.m_impl.m_value2);
7951  }
7952  case value_variant_type::Type::Type3: {
7953  return functor(
7954  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7955  arg2.m_impl.m_value3);
7956  }
7957  case value_variant_type::Type::Type4: {
7958  return functor(
7959  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7960  arg2.m_impl.m_value4);
7961  }
7962  case value_variant_type::Type::Type5: {
7963  return functor(
7964  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7965  arg2.m_impl.m_value5);
7966  }
7967  case value_variant_type::Type::Type6: {
7968  return functor(
7969  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7970  arg2.m_impl.m_value6);
7971  }
7972  case value_variant_type::Type::Type7: {
7973  return functor(
7974  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7975  arg2.m_impl.m_value7);
7976  }
7977  case value_variant_type::Type::Type8: {
7978  return functor(
7979  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7980  arg2.m_impl.m_value8);
7981  }
7982  case value_variant_type::Type::Type9: {
7983  return functor(
7984  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value2,
7985  arg2.m_impl.m_value9);
7986  }
7987  default:
7988  ossia_do_throw(std::runtime_error, "value_variant: bad type");
7989  }
7990  }
7991  case value_variant_type::Type::Type3: {
7992  switch(arg2.m_type)
7993  {
7994  case value_variant_type::Type::Type0: {
7995  return functor(
7996  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
7997  arg2.m_impl.m_value0);
7998  }
7999  case value_variant_type::Type::Type1: {
8000  return functor(
8001  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8002  arg2.m_impl.m_value1);
8003  }
8004  case value_variant_type::Type::Type2: {
8005  return functor(
8006  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8007  arg2.m_impl.m_value2);
8008  }
8009  case value_variant_type::Type::Type3: {
8010  return functor(
8011  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8012  arg2.m_impl.m_value3);
8013  }
8014  case value_variant_type::Type::Type4: {
8015  return functor(
8016  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8017  arg2.m_impl.m_value4);
8018  }
8019  case value_variant_type::Type::Type5: {
8020  return functor(
8021  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8022  arg2.m_impl.m_value5);
8023  }
8024  case value_variant_type::Type::Type6: {
8025  return functor(
8026  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8027  arg2.m_impl.m_value6);
8028  }
8029  case value_variant_type::Type::Type7: {
8030  return functor(
8031  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8032  arg2.m_impl.m_value7);
8033  }
8034  case value_variant_type::Type::Type8: {
8035  return functor(
8036  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8037  arg2.m_impl.m_value8);
8038  }
8039  case value_variant_type::Type::Type9: {
8040  return functor(
8041  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value3,
8042  arg2.m_impl.m_value9);
8043  }
8044  default:
8045  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8046  }
8047  }
8048  case value_variant_type::Type::Type4: {
8049  switch(arg2.m_type)
8050  {
8051  case value_variant_type::Type::Type0: {
8052  return functor(
8053  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8054  arg2.m_impl.m_value0);
8055  }
8056  case value_variant_type::Type::Type1: {
8057  return functor(
8058  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8059  arg2.m_impl.m_value1);
8060  }
8061  case value_variant_type::Type::Type2: {
8062  return functor(
8063  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8064  arg2.m_impl.m_value2);
8065  }
8066  case value_variant_type::Type::Type3: {
8067  return functor(
8068  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8069  arg2.m_impl.m_value3);
8070  }
8071  case value_variant_type::Type::Type4: {
8072  return functor(
8073  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8074  arg2.m_impl.m_value4);
8075  }
8076  case value_variant_type::Type::Type5: {
8077  return functor(
8078  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8079  arg2.m_impl.m_value5);
8080  }
8081  case value_variant_type::Type::Type6: {
8082  return functor(
8083  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8084  arg2.m_impl.m_value6);
8085  }
8086  case value_variant_type::Type::Type7: {
8087  return functor(
8088  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8089  arg2.m_impl.m_value7);
8090  }
8091  case value_variant_type::Type::Type8: {
8092  return functor(
8093  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8094  arg2.m_impl.m_value8);
8095  }
8096  case value_variant_type::Type::Type9: {
8097  return functor(
8098  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value4,
8099  arg2.m_impl.m_value9);
8100  }
8101  default:
8102  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8103  }
8104  }
8105  case value_variant_type::Type::Type5: {
8106  switch(arg2.m_type)
8107  {
8108  case value_variant_type::Type::Type0: {
8109  return functor(
8110  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8111  arg2.m_impl.m_value0);
8112  }
8113  case value_variant_type::Type::Type1: {
8114  return functor(
8115  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8116  arg2.m_impl.m_value1);
8117  }
8118  case value_variant_type::Type::Type2: {
8119  return functor(
8120  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8121  arg2.m_impl.m_value2);
8122  }
8123  case value_variant_type::Type::Type3: {
8124  return functor(
8125  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8126  arg2.m_impl.m_value3);
8127  }
8128  case value_variant_type::Type::Type4: {
8129  return functor(
8130  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8131  arg2.m_impl.m_value4);
8132  }
8133  case value_variant_type::Type::Type5: {
8134  return functor(
8135  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8136  arg2.m_impl.m_value5);
8137  }
8138  case value_variant_type::Type::Type6: {
8139  return functor(
8140  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8141  arg2.m_impl.m_value6);
8142  }
8143  case value_variant_type::Type::Type7: {
8144  return functor(
8145  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8146  arg2.m_impl.m_value7);
8147  }
8148  case value_variant_type::Type::Type8: {
8149  return functor(
8150  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8151  arg2.m_impl.m_value8);
8152  }
8153  case value_variant_type::Type::Type9: {
8154  return functor(
8155  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value5,
8156  arg2.m_impl.m_value9);
8157  }
8158  default:
8159  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8160  }
8161  }
8162  case value_variant_type::Type::Type6: {
8163  switch(arg2.m_type)
8164  {
8165  case value_variant_type::Type::Type0: {
8166  return functor(
8167  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8168  arg2.m_impl.m_value0);
8169  }
8170  case value_variant_type::Type::Type1: {
8171  return functor(
8172  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8173  arg2.m_impl.m_value1);
8174  }
8175  case value_variant_type::Type::Type2: {
8176  return functor(
8177  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8178  arg2.m_impl.m_value2);
8179  }
8180  case value_variant_type::Type::Type3: {
8181  return functor(
8182  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8183  arg2.m_impl.m_value3);
8184  }
8185  case value_variant_type::Type::Type4: {
8186  return functor(
8187  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8188  arg2.m_impl.m_value4);
8189  }
8190  case value_variant_type::Type::Type5: {
8191  return functor(
8192  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8193  arg2.m_impl.m_value5);
8194  }
8195  case value_variant_type::Type::Type6: {
8196  return functor(
8197  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8198  arg2.m_impl.m_value6);
8199  }
8200  case value_variant_type::Type::Type7: {
8201  return functor(
8202  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8203  arg2.m_impl.m_value7);
8204  }
8205  case value_variant_type::Type::Type8: {
8206  return functor(
8207  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8208  arg2.m_impl.m_value8);
8209  }
8210  case value_variant_type::Type::Type9: {
8211  return functor(
8212  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value6,
8213  arg2.m_impl.m_value9);
8214  }
8215  default:
8216  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8217  }
8218  }
8219  case value_variant_type::Type::Type7: {
8220  switch(arg2.m_type)
8221  {
8222  case value_variant_type::Type::Type0: {
8223  return functor(
8224  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8225  arg2.m_impl.m_value0);
8226  }
8227  case value_variant_type::Type::Type1: {
8228  return functor(
8229  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8230  arg2.m_impl.m_value1);
8231  }
8232  case value_variant_type::Type::Type2: {
8233  return functor(
8234  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8235  arg2.m_impl.m_value2);
8236  }
8237  case value_variant_type::Type::Type3: {
8238  return functor(
8239  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8240  arg2.m_impl.m_value3);
8241  }
8242  case value_variant_type::Type::Type4: {
8243  return functor(
8244  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8245  arg2.m_impl.m_value4);
8246  }
8247  case value_variant_type::Type::Type5: {
8248  return functor(
8249  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8250  arg2.m_impl.m_value5);
8251  }
8252  case value_variant_type::Type::Type6: {
8253  return functor(
8254  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8255  arg2.m_impl.m_value6);
8256  }
8257  case value_variant_type::Type::Type7: {
8258  return functor(
8259  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8260  arg2.m_impl.m_value7);
8261  }
8262  case value_variant_type::Type::Type8: {
8263  return functor(
8264  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8265  arg2.m_impl.m_value8);
8266  }
8267  case value_variant_type::Type::Type9: {
8268  return functor(
8269  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value7,
8270  arg2.m_impl.m_value9);
8271  }
8272  default:
8273  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8274  }
8275  }
8276  case value_variant_type::Type::Type8: {
8277  switch(arg2.m_type)
8278  {
8279  case value_variant_type::Type::Type0: {
8280  return functor(
8281  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8282  arg2.m_impl.m_value0);
8283  }
8284  case value_variant_type::Type::Type1: {
8285  return functor(
8286  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8287  arg2.m_impl.m_value1);
8288  }
8289  case value_variant_type::Type::Type2: {
8290  return functor(
8291  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8292  arg2.m_impl.m_value2);
8293  }
8294  case value_variant_type::Type::Type3: {
8295  return functor(
8296  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8297  arg2.m_impl.m_value3);
8298  }
8299  case value_variant_type::Type::Type4: {
8300  return functor(
8301  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8302  arg2.m_impl.m_value4);
8303  }
8304  case value_variant_type::Type::Type5: {
8305  return functor(
8306  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8307  arg2.m_impl.m_value5);
8308  }
8309  case value_variant_type::Type::Type6: {
8310  return functor(
8311  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8312  arg2.m_impl.m_value6);
8313  }
8314  case value_variant_type::Type::Type7: {
8315  return functor(
8316  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8317  arg2.m_impl.m_value7);
8318  }
8319  case value_variant_type::Type::Type8: {
8320  return functor(
8321  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8322  arg2.m_impl.m_value8);
8323  }
8324  case value_variant_type::Type::Type9: {
8325  return functor(
8326  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value8,
8327  arg2.m_impl.m_value9);
8328  }
8329  default:
8330  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8331  }
8332  }
8333  case value_variant_type::Type::Type9: {
8334  switch(arg2.m_type)
8335  {
8336  case value_variant_type::Type::Type0: {
8337  return functor(
8338  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8339  arg2.m_impl.m_value0);
8340  }
8341  case value_variant_type::Type::Type1: {
8342  return functor(
8343  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8344  arg2.m_impl.m_value1);
8345  }
8346  case value_variant_type::Type::Type2: {
8347  return functor(
8348  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8349  arg2.m_impl.m_value2);
8350  }
8351  case value_variant_type::Type::Type3: {
8352  return functor(
8353  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8354  arg2.m_impl.m_value3);
8355  }
8356  case value_variant_type::Type::Type4: {
8357  return functor(
8358  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8359  arg2.m_impl.m_value4);
8360  }
8361  case value_variant_type::Type::Type5: {
8362  return functor(
8363  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8364  arg2.m_impl.m_value5);
8365  }
8366  case value_variant_type::Type::Type6: {
8367  return functor(
8368  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8369  arg2.m_impl.m_value6);
8370  }
8371  case value_variant_type::Type::Type7: {
8372  return functor(
8373  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8374  arg2.m_impl.m_value7);
8375  }
8376  case value_variant_type::Type::Type8: {
8377  return functor(
8378  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8379  arg2.m_impl.m_value8);
8380  }
8381  case value_variant_type::Type::Type9: {
8382  return functor(
8383  std::move(arg0.m_impl.m_value1), arg1.m_impl.m_value9,
8384  arg2.m_impl.m_value9);
8385  }
8386  default:
8387  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8388  }
8389  }
8390  default:
8391  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8392  }
8393  }
8394  case value_variant_type::Type::Type2: {
8395  switch(arg1.m_type)
8396  {
8397  case value_variant_type::Type::Type0: {
8398  switch(arg2.m_type)
8399  {
8400  case value_variant_type::Type::Type0: {
8401  return functor(
8402  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8403  arg2.m_impl.m_value0);
8404  }
8405  case value_variant_type::Type::Type1: {
8406  return functor(
8407  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8408  arg2.m_impl.m_value1);
8409  }
8410  case value_variant_type::Type::Type2: {
8411  return functor(
8412  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8413  arg2.m_impl.m_value2);
8414  }
8415  case value_variant_type::Type::Type3: {
8416  return functor(
8417  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8418  arg2.m_impl.m_value3);
8419  }
8420  case value_variant_type::Type::Type4: {
8421  return functor(
8422  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8423  arg2.m_impl.m_value4);
8424  }
8425  case value_variant_type::Type::Type5: {
8426  return functor(
8427  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8428  arg2.m_impl.m_value5);
8429  }
8430  case value_variant_type::Type::Type6: {
8431  return functor(
8432  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8433  arg2.m_impl.m_value6);
8434  }
8435  case value_variant_type::Type::Type7: {
8436  return functor(
8437  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8438  arg2.m_impl.m_value7);
8439  }
8440  case value_variant_type::Type::Type8: {
8441  return functor(
8442  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8443  arg2.m_impl.m_value8);
8444  }
8445  case value_variant_type::Type::Type9: {
8446  return functor(
8447  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value0,
8448  arg2.m_impl.m_value9);
8449  }
8450  default:
8451  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8452  }
8453  }
8454  case value_variant_type::Type::Type1: {
8455  switch(arg2.m_type)
8456  {
8457  case value_variant_type::Type::Type0: {
8458  return functor(
8459  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8460  arg2.m_impl.m_value0);
8461  }
8462  case value_variant_type::Type::Type1: {
8463  return functor(
8464  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8465  arg2.m_impl.m_value1);
8466  }
8467  case value_variant_type::Type::Type2: {
8468  return functor(
8469  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8470  arg2.m_impl.m_value2);
8471  }
8472  case value_variant_type::Type::Type3: {
8473  return functor(
8474  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8475  arg2.m_impl.m_value3);
8476  }
8477  case value_variant_type::Type::Type4: {
8478  return functor(
8479  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8480  arg2.m_impl.m_value4);
8481  }
8482  case value_variant_type::Type::Type5: {
8483  return functor(
8484  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8485  arg2.m_impl.m_value5);
8486  }
8487  case value_variant_type::Type::Type6: {
8488  return functor(
8489  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8490  arg2.m_impl.m_value6);
8491  }
8492  case value_variant_type::Type::Type7: {
8493  return functor(
8494  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8495  arg2.m_impl.m_value7);
8496  }
8497  case value_variant_type::Type::Type8: {
8498  return functor(
8499  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8500  arg2.m_impl.m_value8);
8501  }
8502  case value_variant_type::Type::Type9: {
8503  return functor(
8504  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value1,
8505  arg2.m_impl.m_value9);
8506  }
8507  default:
8508  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8509  }
8510  }
8511  case value_variant_type::Type::Type2: {
8512  switch(arg2.m_type)
8513  {
8514  case value_variant_type::Type::Type0: {
8515  return functor(
8516  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8517  arg2.m_impl.m_value0);
8518  }
8519  case value_variant_type::Type::Type1: {
8520  return functor(
8521  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8522  arg2.m_impl.m_value1);
8523  }
8524  case value_variant_type::Type::Type2: {
8525  return functor(
8526  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8527  arg2.m_impl.m_value2);
8528  }
8529  case value_variant_type::Type::Type3: {
8530  return functor(
8531  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8532  arg2.m_impl.m_value3);
8533  }
8534  case value_variant_type::Type::Type4: {
8535  return functor(
8536  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8537  arg2.m_impl.m_value4);
8538  }
8539  case value_variant_type::Type::Type5: {
8540  return functor(
8541  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8542  arg2.m_impl.m_value5);
8543  }
8544  case value_variant_type::Type::Type6: {
8545  return functor(
8546  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8547  arg2.m_impl.m_value6);
8548  }
8549  case value_variant_type::Type::Type7: {
8550  return functor(
8551  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8552  arg2.m_impl.m_value7);
8553  }
8554  case value_variant_type::Type::Type8: {
8555  return functor(
8556  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8557  arg2.m_impl.m_value8);
8558  }
8559  case value_variant_type::Type::Type9: {
8560  return functor(
8561  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value2,
8562  arg2.m_impl.m_value9);
8563  }
8564  default:
8565  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8566  }
8567  }
8568  case value_variant_type::Type::Type3: {
8569  switch(arg2.m_type)
8570  {
8571  case value_variant_type::Type::Type0: {
8572  return functor(
8573  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8574  arg2.m_impl.m_value0);
8575  }
8576  case value_variant_type::Type::Type1: {
8577  return functor(
8578  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8579  arg2.m_impl.m_value1);
8580  }
8581  case value_variant_type::Type::Type2: {
8582  return functor(
8583  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8584  arg2.m_impl.m_value2);
8585  }
8586  case value_variant_type::Type::Type3: {
8587  return functor(
8588  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8589  arg2.m_impl.m_value3);
8590  }
8591  case value_variant_type::Type::Type4: {
8592  return functor(
8593  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8594  arg2.m_impl.m_value4);
8595  }
8596  case value_variant_type::Type::Type5: {
8597  return functor(
8598  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8599  arg2.m_impl.m_value5);
8600  }
8601  case value_variant_type::Type::Type6: {
8602  return functor(
8603  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8604  arg2.m_impl.m_value6);
8605  }
8606  case value_variant_type::Type::Type7: {
8607  return functor(
8608  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8609  arg2.m_impl.m_value7);
8610  }
8611  case value_variant_type::Type::Type8: {
8612  return functor(
8613  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8614  arg2.m_impl.m_value8);
8615  }
8616  case value_variant_type::Type::Type9: {
8617  return functor(
8618  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value3,
8619  arg2.m_impl.m_value9);
8620  }
8621  default:
8622  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8623  }
8624  }
8625  case value_variant_type::Type::Type4: {
8626  switch(arg2.m_type)
8627  {
8628  case value_variant_type::Type::Type0: {
8629  return functor(
8630  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8631  arg2.m_impl.m_value0);
8632  }
8633  case value_variant_type::Type::Type1: {
8634  return functor(
8635  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8636  arg2.m_impl.m_value1);
8637  }
8638  case value_variant_type::Type::Type2: {
8639  return functor(
8640  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8641  arg2.m_impl.m_value2);
8642  }
8643  case value_variant_type::Type::Type3: {
8644  return functor(
8645  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8646  arg2.m_impl.m_value3);
8647  }
8648  case value_variant_type::Type::Type4: {
8649  return functor(
8650  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8651  arg2.m_impl.m_value4);
8652  }
8653  case value_variant_type::Type::Type5: {
8654  return functor(
8655  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8656  arg2.m_impl.m_value5);
8657  }
8658  case value_variant_type::Type::Type6: {
8659  return functor(
8660  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8661  arg2.m_impl.m_value6);
8662  }
8663  case value_variant_type::Type::Type7: {
8664  return functor(
8665  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8666  arg2.m_impl.m_value7);
8667  }
8668  case value_variant_type::Type::Type8: {
8669  return functor(
8670  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8671  arg2.m_impl.m_value8);
8672  }
8673  case value_variant_type::Type::Type9: {
8674  return functor(
8675  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value4,
8676  arg2.m_impl.m_value9);
8677  }
8678  default:
8679  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8680  }
8681  }
8682  case value_variant_type::Type::Type5: {
8683  switch(arg2.m_type)
8684  {
8685  case value_variant_type::Type::Type0: {
8686  return functor(
8687  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8688  arg2.m_impl.m_value0);
8689  }
8690  case value_variant_type::Type::Type1: {
8691  return functor(
8692  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8693  arg2.m_impl.m_value1);
8694  }
8695  case value_variant_type::Type::Type2: {
8696  return functor(
8697  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8698  arg2.m_impl.m_value2);
8699  }
8700  case value_variant_type::Type::Type3: {
8701  return functor(
8702  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8703  arg2.m_impl.m_value3);
8704  }
8705  case value_variant_type::Type::Type4: {
8706  return functor(
8707  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8708  arg2.m_impl.m_value4);
8709  }
8710  case value_variant_type::Type::Type5: {
8711  return functor(
8712  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8713  arg2.m_impl.m_value5);
8714  }
8715  case value_variant_type::Type::Type6: {
8716  return functor(
8717  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8718  arg2.m_impl.m_value6);
8719  }
8720  case value_variant_type::Type::Type7: {
8721  return functor(
8722  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8723  arg2.m_impl.m_value7);
8724  }
8725  case value_variant_type::Type::Type8: {
8726  return functor(
8727  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8728  arg2.m_impl.m_value8);
8729  }
8730  case value_variant_type::Type::Type9: {
8731  return functor(
8732  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value5,
8733  arg2.m_impl.m_value9);
8734  }
8735  default:
8736  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8737  }
8738  }
8739  case value_variant_type::Type::Type6: {
8740  switch(arg2.m_type)
8741  {
8742  case value_variant_type::Type::Type0: {
8743  return functor(
8744  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8745  arg2.m_impl.m_value0);
8746  }
8747  case value_variant_type::Type::Type1: {
8748  return functor(
8749  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8750  arg2.m_impl.m_value1);
8751  }
8752  case value_variant_type::Type::Type2: {
8753  return functor(
8754  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8755  arg2.m_impl.m_value2);
8756  }
8757  case value_variant_type::Type::Type3: {
8758  return functor(
8759  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8760  arg2.m_impl.m_value3);
8761  }
8762  case value_variant_type::Type::Type4: {
8763  return functor(
8764  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8765  arg2.m_impl.m_value4);
8766  }
8767  case value_variant_type::Type::Type5: {
8768  return functor(
8769  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8770  arg2.m_impl.m_value5);
8771  }
8772  case value_variant_type::Type::Type6: {
8773  return functor(
8774  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8775  arg2.m_impl.m_value6);
8776  }
8777  case value_variant_type::Type::Type7: {
8778  return functor(
8779  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8780  arg2.m_impl.m_value7);
8781  }
8782  case value_variant_type::Type::Type8: {
8783  return functor(
8784  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8785  arg2.m_impl.m_value8);
8786  }
8787  case value_variant_type::Type::Type9: {
8788  return functor(
8789  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value6,
8790  arg2.m_impl.m_value9);
8791  }
8792  default:
8793  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8794  }
8795  }
8796  case value_variant_type::Type::Type7: {
8797  switch(arg2.m_type)
8798  {
8799  case value_variant_type::Type::Type0: {
8800  return functor(
8801  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8802  arg2.m_impl.m_value0);
8803  }
8804  case value_variant_type::Type::Type1: {
8805  return functor(
8806  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8807  arg2.m_impl.m_value1);
8808  }
8809  case value_variant_type::Type::Type2: {
8810  return functor(
8811  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8812  arg2.m_impl.m_value2);
8813  }
8814  case value_variant_type::Type::Type3: {
8815  return functor(
8816  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8817  arg2.m_impl.m_value3);
8818  }
8819  case value_variant_type::Type::Type4: {
8820  return functor(
8821  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8822  arg2.m_impl.m_value4);
8823  }
8824  case value_variant_type::Type::Type5: {
8825  return functor(
8826  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8827  arg2.m_impl.m_value5);
8828  }
8829  case value_variant_type::Type::Type6: {
8830  return functor(
8831  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8832  arg2.m_impl.m_value6);
8833  }
8834  case value_variant_type::Type::Type7: {
8835  return functor(
8836  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8837  arg2.m_impl.m_value7);
8838  }
8839  case value_variant_type::Type::Type8: {
8840  return functor(
8841  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8842  arg2.m_impl.m_value8);
8843  }
8844  case value_variant_type::Type::Type9: {
8845  return functor(
8846  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value7,
8847  arg2.m_impl.m_value9);
8848  }
8849  default:
8850  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8851  }
8852  }
8853  case value_variant_type::Type::Type8: {
8854  switch(arg2.m_type)
8855  {
8856  case value_variant_type::Type::Type0: {
8857  return functor(
8858  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8859  arg2.m_impl.m_value0);
8860  }
8861  case value_variant_type::Type::Type1: {
8862  return functor(
8863  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8864  arg2.m_impl.m_value1);
8865  }
8866  case value_variant_type::Type::Type2: {
8867  return functor(
8868  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8869  arg2.m_impl.m_value2);
8870  }
8871  case value_variant_type::Type::Type3: {
8872  return functor(
8873  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8874  arg2.m_impl.m_value3);
8875  }
8876  case value_variant_type::Type::Type4: {
8877  return functor(
8878  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8879  arg2.m_impl.m_value4);
8880  }
8881  case value_variant_type::Type::Type5: {
8882  return functor(
8883  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8884  arg2.m_impl.m_value5);
8885  }
8886  case value_variant_type::Type::Type6: {
8887  return functor(
8888  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8889  arg2.m_impl.m_value6);
8890  }
8891  case value_variant_type::Type::Type7: {
8892  return functor(
8893  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8894  arg2.m_impl.m_value7);
8895  }
8896  case value_variant_type::Type::Type8: {
8897  return functor(
8898  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8899  arg2.m_impl.m_value8);
8900  }
8901  case value_variant_type::Type::Type9: {
8902  return functor(
8903  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value8,
8904  arg2.m_impl.m_value9);
8905  }
8906  default:
8907  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8908  }
8909  }
8910  case value_variant_type::Type::Type9: {
8911  switch(arg2.m_type)
8912  {
8913  case value_variant_type::Type::Type0: {
8914  return functor(
8915  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8916  arg2.m_impl.m_value0);
8917  }
8918  case value_variant_type::Type::Type1: {
8919  return functor(
8920  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8921  arg2.m_impl.m_value1);
8922  }
8923  case value_variant_type::Type::Type2: {
8924  return functor(
8925  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8926  arg2.m_impl.m_value2);
8927  }
8928  case value_variant_type::Type::Type3: {
8929  return functor(
8930  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8931  arg2.m_impl.m_value3);
8932  }
8933  case value_variant_type::Type::Type4: {
8934  return functor(
8935  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8936  arg2.m_impl.m_value4);
8937  }
8938  case value_variant_type::Type::Type5: {
8939  return functor(
8940  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8941  arg2.m_impl.m_value5);
8942  }
8943  case value_variant_type::Type::Type6: {
8944  return functor(
8945  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8946  arg2.m_impl.m_value6);
8947  }
8948  case value_variant_type::Type::Type7: {
8949  return functor(
8950  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8951  arg2.m_impl.m_value7);
8952  }
8953  case value_variant_type::Type::Type8: {
8954  return functor(
8955  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8956  arg2.m_impl.m_value8);
8957  }
8958  case value_variant_type::Type::Type9: {
8959  return functor(
8960  std::move(arg0.m_impl.m_value2), arg1.m_impl.m_value9,
8961  arg2.m_impl.m_value9);
8962  }
8963  default:
8964  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8965  }
8966  }
8967  default:
8968  ossia_do_throw(std::runtime_error, "value_variant: bad type");
8969  }
8970  }
8971  case value_variant_type::Type::Type3: {
8972  switch(arg1.m_type)
8973  {
8974  case value_variant_type::Type::Type0: {
8975  switch(arg2.m_type)
8976  {
8977  case value_variant_type::Type::Type0: {
8978  return functor(
8979  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
8980  arg2.m_impl.m_value0);
8981  }
8982  case value_variant_type::Type::Type1: {
8983  return functor(
8984  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
8985  arg2.m_impl.m_value1);
8986  }
8987  case value_variant_type::Type::Type2: {
8988  return functor(
8989  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
8990  arg2.m_impl.m_value2);
8991  }
8992  case value_variant_type::Type::Type3: {
8993  return functor(
8994  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
8995  arg2.m_impl.m_value3);
8996  }
8997  case value_variant_type::Type::Type4: {
8998  return functor(
8999  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
9000  arg2.m_impl.m_value4);
9001  }
9002  case value_variant_type::Type::Type5: {
9003  return functor(
9004  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
9005  arg2.m_impl.m_value5);
9006  }
9007  case value_variant_type::Type::Type6: {
9008  return functor(
9009  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
9010  arg2.m_impl.m_value6);
9011  }
9012  case value_variant_type::Type::Type7: {
9013  return functor(
9014  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
9015  arg2.m_impl.m_value7);
9016  }
9017  case value_variant_type::Type::Type8: {
9018  return functor(
9019  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
9020  arg2.m_impl.m_value8);
9021  }
9022  case value_variant_type::Type::Type9: {
9023  return functor(
9024  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value0,
9025  arg2.m_impl.m_value9);
9026  }
9027  default:
9028  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9029  }
9030  }
9031  case value_variant_type::Type::Type1: {
9032  switch(arg2.m_type)
9033  {
9034  case value_variant_type::Type::Type0: {
9035  return functor(
9036  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9037  arg2.m_impl.m_value0);
9038  }
9039  case value_variant_type::Type::Type1: {
9040  return functor(
9041  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9042  arg2.m_impl.m_value1);
9043  }
9044  case value_variant_type::Type::Type2: {
9045  return functor(
9046  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9047  arg2.m_impl.m_value2);
9048  }
9049  case value_variant_type::Type::Type3: {
9050  return functor(
9051  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9052  arg2.m_impl.m_value3);
9053  }
9054  case value_variant_type::Type::Type4: {
9055  return functor(
9056  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9057  arg2.m_impl.m_value4);
9058  }
9059  case value_variant_type::Type::Type5: {
9060  return functor(
9061  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9062  arg2.m_impl.m_value5);
9063  }
9064  case value_variant_type::Type::Type6: {
9065  return functor(
9066  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9067  arg2.m_impl.m_value6);
9068  }
9069  case value_variant_type::Type::Type7: {
9070  return functor(
9071  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9072  arg2.m_impl.m_value7);
9073  }
9074  case value_variant_type::Type::Type8: {
9075  return functor(
9076  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9077  arg2.m_impl.m_value8);
9078  }
9079  case value_variant_type::Type::Type9: {
9080  return functor(
9081  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value1,
9082  arg2.m_impl.m_value9);
9083  }
9084  default:
9085  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9086  }
9087  }
9088  case value_variant_type::Type::Type2: {
9089  switch(arg2.m_type)
9090  {
9091  case value_variant_type::Type::Type0: {
9092  return functor(
9093  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9094  arg2.m_impl.m_value0);
9095  }
9096  case value_variant_type::Type::Type1: {
9097  return functor(
9098  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9099  arg2.m_impl.m_value1);
9100  }
9101  case value_variant_type::Type::Type2: {
9102  return functor(
9103  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9104  arg2.m_impl.m_value2);
9105  }
9106  case value_variant_type::Type::Type3: {
9107  return functor(
9108  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9109  arg2.m_impl.m_value3);
9110  }
9111  case value_variant_type::Type::Type4: {
9112  return functor(
9113  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9114  arg2.m_impl.m_value4);
9115  }
9116  case value_variant_type::Type::Type5: {
9117  return functor(
9118  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9119  arg2.m_impl.m_value5);
9120  }
9121  case value_variant_type::Type::Type6: {
9122  return functor(
9123  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9124  arg2.m_impl.m_value6);
9125  }
9126  case value_variant_type::Type::Type7: {
9127  return functor(
9128  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9129  arg2.m_impl.m_value7);
9130  }
9131  case value_variant_type::Type::Type8: {
9132  return functor(
9133  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9134  arg2.m_impl.m_value8);
9135  }
9136  case value_variant_type::Type::Type9: {
9137  return functor(
9138  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value2,
9139  arg2.m_impl.m_value9);
9140  }
9141  default:
9142  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9143  }
9144  }
9145  case value_variant_type::Type::Type3: {
9146  switch(arg2.m_type)
9147  {
9148  case value_variant_type::Type::Type0: {
9149  return functor(
9150  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9151  arg2.m_impl.m_value0);
9152  }
9153  case value_variant_type::Type::Type1: {
9154  return functor(
9155  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9156  arg2.m_impl.m_value1);
9157  }
9158  case value_variant_type::Type::Type2: {
9159  return functor(
9160  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9161  arg2.m_impl.m_value2);
9162  }
9163  case value_variant_type::Type::Type3: {
9164  return functor(
9165  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9166  arg2.m_impl.m_value3);
9167  }
9168  case value_variant_type::Type::Type4: {
9169  return functor(
9170  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9171  arg2.m_impl.m_value4);
9172  }
9173  case value_variant_type::Type::Type5: {
9174  return functor(
9175  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9176  arg2.m_impl.m_value5);
9177  }
9178  case value_variant_type::Type::Type6: {
9179  return functor(
9180  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9181  arg2.m_impl.m_value6);
9182  }
9183  case value_variant_type::Type::Type7: {
9184  return functor(
9185  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9186  arg2.m_impl.m_value7);
9187  }
9188  case value_variant_type::Type::Type8: {
9189  return functor(
9190  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9191  arg2.m_impl.m_value8);
9192  }
9193  case value_variant_type::Type::Type9: {
9194  return functor(
9195  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value3,
9196  arg2.m_impl.m_value9);
9197  }
9198  default:
9199  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9200  }
9201  }
9202  case value_variant_type::Type::Type4: {
9203  switch(arg2.m_type)
9204  {
9205  case value_variant_type::Type::Type0: {
9206  return functor(
9207  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9208  arg2.m_impl.m_value0);
9209  }
9210  case value_variant_type::Type::Type1: {
9211  return functor(
9212  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9213  arg2.m_impl.m_value1);
9214  }
9215  case value_variant_type::Type::Type2: {
9216  return functor(
9217  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9218  arg2.m_impl.m_value2);
9219  }
9220  case value_variant_type::Type::Type3: {
9221  return functor(
9222  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9223  arg2.m_impl.m_value3);
9224  }
9225  case value_variant_type::Type::Type4: {
9226  return functor(
9227  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9228  arg2.m_impl.m_value4);
9229  }
9230  case value_variant_type::Type::Type5: {
9231  return functor(
9232  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9233  arg2.m_impl.m_value5);
9234  }
9235  case value_variant_type::Type::Type6: {
9236  return functor(
9237  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9238  arg2.m_impl.m_value6);
9239  }
9240  case value_variant_type::Type::Type7: {
9241  return functor(
9242  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9243  arg2.m_impl.m_value7);
9244  }
9245  case value_variant_type::Type::Type8: {
9246  return functor(
9247  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9248  arg2.m_impl.m_value8);
9249  }
9250  case value_variant_type::Type::Type9: {
9251  return functor(
9252  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value4,
9253  arg2.m_impl.m_value9);
9254  }
9255  default:
9256  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9257  }
9258  }
9259  case value_variant_type::Type::Type5: {
9260  switch(arg2.m_type)
9261  {
9262  case value_variant_type::Type::Type0: {
9263  return functor(
9264  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9265  arg2.m_impl.m_value0);
9266  }
9267  case value_variant_type::Type::Type1: {
9268  return functor(
9269  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9270  arg2.m_impl.m_value1);
9271  }
9272  case value_variant_type::Type::Type2: {
9273  return functor(
9274  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9275  arg2.m_impl.m_value2);
9276  }
9277  case value_variant_type::Type::Type3: {
9278  return functor(
9279  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9280  arg2.m_impl.m_value3);
9281  }
9282  case value_variant_type::Type::Type4: {
9283  return functor(
9284  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9285  arg2.m_impl.m_value4);
9286  }
9287  case value_variant_type::Type::Type5: {
9288  return functor(
9289  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9290  arg2.m_impl.m_value5);
9291  }
9292  case value_variant_type::Type::Type6: {
9293  return functor(
9294  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9295  arg2.m_impl.m_value6);
9296  }
9297  case value_variant_type::Type::Type7: {
9298  return functor(
9299  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9300  arg2.m_impl.m_value7);
9301  }
9302  case value_variant_type::Type::Type8: {
9303  return functor(
9304  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9305  arg2.m_impl.m_value8);
9306  }
9307  case value_variant_type::Type::Type9: {
9308  return functor(
9309  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value5,
9310  arg2.m_impl.m_value9);
9311  }
9312  default:
9313  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9314  }
9315  }
9316  case value_variant_type::Type::Type6: {
9317  switch(arg2.m_type)
9318  {
9319  case value_variant_type::Type::Type0: {
9320  return functor(
9321  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9322  arg2.m_impl.m_value0);
9323  }
9324  case value_variant_type::Type::Type1: {
9325  return functor(
9326  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9327  arg2.m_impl.m_value1);
9328  }
9329  case value_variant_type::Type::Type2: {
9330  return functor(
9331  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9332  arg2.m_impl.m_value2);
9333  }
9334  case value_variant_type::Type::Type3: {
9335  return functor(
9336  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9337  arg2.m_impl.m_value3);
9338  }
9339  case value_variant_type::Type::Type4: {
9340  return functor(
9341  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9342  arg2.m_impl.m_value4);
9343  }
9344  case value_variant_type::Type::Type5: {
9345  return functor(
9346  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9347  arg2.m_impl.m_value5);
9348  }
9349  case value_variant_type::Type::Type6: {
9350  return functor(
9351  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9352  arg2.m_impl.m_value6);
9353  }
9354  case value_variant_type::Type::Type7: {
9355  return functor(
9356  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9357  arg2.m_impl.m_value7);
9358  }
9359  case value_variant_type::Type::Type8: {
9360  return functor(
9361  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9362  arg2.m_impl.m_value8);
9363  }
9364  case value_variant_type::Type::Type9: {
9365  return functor(
9366  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value6,
9367  arg2.m_impl.m_value9);
9368  }
9369  default:
9370  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9371  }
9372  }
9373  case value_variant_type::Type::Type7: {
9374  switch(arg2.m_type)
9375  {
9376  case value_variant_type::Type::Type0: {
9377  return functor(
9378  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9379  arg2.m_impl.m_value0);
9380  }
9381  case value_variant_type::Type::Type1: {
9382  return functor(
9383  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9384  arg2.m_impl.m_value1);
9385  }
9386  case value_variant_type::Type::Type2: {
9387  return functor(
9388  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9389  arg2.m_impl.m_value2);
9390  }
9391  case value_variant_type::Type::Type3: {
9392  return functor(
9393  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9394  arg2.m_impl.m_value3);
9395  }
9396  case value_variant_type::Type::Type4: {
9397  return functor(
9398  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9399  arg2.m_impl.m_value4);
9400  }
9401  case value_variant_type::Type::Type5: {
9402  return functor(
9403  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9404  arg2.m_impl.m_value5);
9405  }
9406  case value_variant_type::Type::Type6: {
9407  return functor(
9408  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9409  arg2.m_impl.m_value6);
9410  }
9411  case value_variant_type::Type::Type7: {
9412  return functor(
9413  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9414  arg2.m_impl.m_value7);
9415  }
9416  case value_variant_type::Type::Type8: {
9417  return functor(
9418  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9419  arg2.m_impl.m_value8);
9420  }
9421  case value_variant_type::Type::Type9: {
9422  return functor(
9423  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value7,
9424  arg2.m_impl.m_value9);
9425  }
9426  default:
9427  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9428  }
9429  }
9430  case value_variant_type::Type::Type8: {
9431  switch(arg2.m_type)
9432  {
9433  case value_variant_type::Type::Type0: {
9434  return functor(
9435  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9436  arg2.m_impl.m_value0);
9437  }
9438  case value_variant_type::Type::Type1: {
9439  return functor(
9440  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9441  arg2.m_impl.m_value1);
9442  }
9443  case value_variant_type::Type::Type2: {
9444  return functor(
9445  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9446  arg2.m_impl.m_value2);
9447  }
9448  case value_variant_type::Type::Type3: {
9449  return functor(
9450  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9451  arg2.m_impl.m_value3);
9452  }
9453  case value_variant_type::Type::Type4: {
9454  return functor(
9455  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9456  arg2.m_impl.m_value4);
9457  }
9458  case value_variant_type::Type::Type5: {
9459  return functor(
9460  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9461  arg2.m_impl.m_value5);
9462  }
9463  case value_variant_type::Type::Type6: {
9464  return functor(
9465  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9466  arg2.m_impl.m_value6);
9467  }
9468  case value_variant_type::Type::Type7: {
9469  return functor(
9470  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9471  arg2.m_impl.m_value7);
9472  }
9473  case value_variant_type::Type::Type8: {
9474  return functor(
9475  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9476  arg2.m_impl.m_value8);
9477  }
9478  case value_variant_type::Type::Type9: {
9479  return functor(
9480  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value8,
9481  arg2.m_impl.m_value9);
9482  }
9483  default:
9484  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9485  }
9486  }
9487  case value_variant_type::Type::Type9: {
9488  switch(arg2.m_type)
9489  {
9490  case value_variant_type::Type::Type0: {
9491  return functor(
9492  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9493  arg2.m_impl.m_value0);
9494  }
9495  case value_variant_type::Type::Type1: {
9496  return functor(
9497  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9498  arg2.m_impl.m_value1);
9499  }
9500  case value_variant_type::Type::Type2: {
9501  return functor(
9502  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9503  arg2.m_impl.m_value2);
9504  }
9505  case value_variant_type::Type::Type3: {
9506  return functor(
9507  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9508  arg2.m_impl.m_value3);
9509  }
9510  case value_variant_type::Type::Type4: {
9511  return functor(
9512  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9513  arg2.m_impl.m_value4);
9514  }
9515  case value_variant_type::Type::Type5: {
9516  return functor(
9517  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9518  arg2.m_impl.m_value5);
9519  }
9520  case value_variant_type::Type::Type6: {
9521  return functor(
9522  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9523  arg2.m_impl.m_value6);
9524  }
9525  case value_variant_type::Type::Type7: {
9526  return functor(
9527  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9528  arg2.m_impl.m_value7);
9529  }
9530  case value_variant_type::Type::Type8: {
9531  return functor(
9532  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9533  arg2.m_impl.m_value8);
9534  }
9535  case value_variant_type::Type::Type9: {
9536  return functor(
9537  std::move(arg0.m_impl.m_value3), arg1.m_impl.m_value9,
9538  arg2.m_impl.m_value9);
9539  }
9540  default:
9541  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9542  }
9543  }
9544  default:
9545  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9546  }
9547  }
9548  case value_variant_type::Type::Type4: {
9549  switch(arg1.m_type)
9550  {
9551  case value_variant_type::Type::Type0: {
9552  switch(arg2.m_type)
9553  {
9554  case value_variant_type::Type::Type0: {
9555  return functor(
9556  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9557  arg2.m_impl.m_value0);
9558  }
9559  case value_variant_type::Type::Type1: {
9560  return functor(
9561  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9562  arg2.m_impl.m_value1);
9563  }
9564  case value_variant_type::Type::Type2: {
9565  return functor(
9566  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9567  arg2.m_impl.m_value2);
9568  }
9569  case value_variant_type::Type::Type3: {
9570  return functor(
9571  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9572  arg2.m_impl.m_value3);
9573  }
9574  case value_variant_type::Type::Type4: {
9575  return functor(
9576  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9577  arg2.m_impl.m_value4);
9578  }
9579  case value_variant_type::Type::Type5: {
9580  return functor(
9581  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9582  arg2.m_impl.m_value5);
9583  }
9584  case value_variant_type::Type::Type6: {
9585  return functor(
9586  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9587  arg2.m_impl.m_value6);
9588  }
9589  case value_variant_type::Type::Type7: {
9590  return functor(
9591  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9592  arg2.m_impl.m_value7);
9593  }
9594  case value_variant_type::Type::Type8: {
9595  return functor(
9596  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9597  arg2.m_impl.m_value8);
9598  }
9599  case value_variant_type::Type::Type9: {
9600  return functor(
9601  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value0,
9602  arg2.m_impl.m_value9);
9603  }
9604  default:
9605  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9606  }
9607  }
9608  case value_variant_type::Type::Type1: {
9609  switch(arg2.m_type)
9610  {
9611  case value_variant_type::Type::Type0: {
9612  return functor(
9613  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9614  arg2.m_impl.m_value0);
9615  }
9616  case value_variant_type::Type::Type1: {
9617  return functor(
9618  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9619  arg2.m_impl.m_value1);
9620  }
9621  case value_variant_type::Type::Type2: {
9622  return functor(
9623  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9624  arg2.m_impl.m_value2);
9625  }
9626  case value_variant_type::Type::Type3: {
9627  return functor(
9628  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9629  arg2.m_impl.m_value3);
9630  }
9631  case value_variant_type::Type::Type4: {
9632  return functor(
9633  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9634  arg2.m_impl.m_value4);
9635  }
9636  case value_variant_type::Type::Type5: {
9637  return functor(
9638  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9639  arg2.m_impl.m_value5);
9640  }
9641  case value_variant_type::Type::Type6: {
9642  return functor(
9643  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9644  arg2.m_impl.m_value6);
9645  }
9646  case value_variant_type::Type::Type7: {
9647  return functor(
9648  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9649  arg2.m_impl.m_value7);
9650  }
9651  case value_variant_type::Type::Type8: {
9652  return functor(
9653  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9654  arg2.m_impl.m_value8);
9655  }
9656  case value_variant_type::Type::Type9: {
9657  return functor(
9658  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value1,
9659  arg2.m_impl.m_value9);
9660  }
9661  default:
9662  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9663  }
9664  }
9665  case value_variant_type::Type::Type2: {
9666  switch(arg2.m_type)
9667  {
9668  case value_variant_type::Type::Type0: {
9669  return functor(
9670  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9671  arg2.m_impl.m_value0);
9672  }
9673  case value_variant_type::Type::Type1: {
9674  return functor(
9675  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9676  arg2.m_impl.m_value1);
9677  }
9678  case value_variant_type::Type::Type2: {
9679  return functor(
9680  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9681  arg2.m_impl.m_value2);
9682  }
9683  case value_variant_type::Type::Type3: {
9684  return functor(
9685  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9686  arg2.m_impl.m_value3);
9687  }
9688  case value_variant_type::Type::Type4: {
9689  return functor(
9690  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9691  arg2.m_impl.m_value4);
9692  }
9693  case value_variant_type::Type::Type5: {
9694  return functor(
9695  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9696  arg2.m_impl.m_value5);
9697  }
9698  case value_variant_type::Type::Type6: {
9699  return functor(
9700  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9701  arg2.m_impl.m_value6);
9702  }
9703  case value_variant_type::Type::Type7: {
9704  return functor(
9705  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9706  arg2.m_impl.m_value7);
9707  }
9708  case value_variant_type::Type::Type8: {
9709  return functor(
9710  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9711  arg2.m_impl.m_value8);
9712  }
9713  case value_variant_type::Type::Type9: {
9714  return functor(
9715  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value2,
9716  arg2.m_impl.m_value9);
9717  }
9718  default:
9719  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9720  }
9721  }
9722  case value_variant_type::Type::Type3: {
9723  switch(arg2.m_type)
9724  {
9725  case value_variant_type::Type::Type0: {
9726  return functor(
9727  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9728  arg2.m_impl.m_value0);
9729  }
9730  case value_variant_type::Type::Type1: {
9731  return functor(
9732  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9733  arg2.m_impl.m_value1);
9734  }
9735  case value_variant_type::Type::Type2: {
9736  return functor(
9737  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9738  arg2.m_impl.m_value2);
9739  }
9740  case value_variant_type::Type::Type3: {
9741  return functor(
9742  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9743  arg2.m_impl.m_value3);
9744  }
9745  case value_variant_type::Type::Type4: {
9746  return functor(
9747  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9748  arg2.m_impl.m_value4);
9749  }
9750  case value_variant_type::Type::Type5: {
9751  return functor(
9752  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9753  arg2.m_impl.m_value5);
9754  }
9755  case value_variant_type::Type::Type6: {
9756  return functor(
9757  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9758  arg2.m_impl.m_value6);
9759  }
9760  case value_variant_type::Type::Type7: {
9761  return functor(
9762  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9763  arg2.m_impl.m_value7);
9764  }
9765  case value_variant_type::Type::Type8: {
9766  return functor(
9767  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9768  arg2.m_impl.m_value8);
9769  }
9770  case value_variant_type::Type::Type9: {
9771  return functor(
9772  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value3,
9773  arg2.m_impl.m_value9);
9774  }
9775  default:
9776  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9777  }
9778  }
9779  case value_variant_type::Type::Type4: {
9780  switch(arg2.m_type)
9781  {
9782  case value_variant_type::Type::Type0: {
9783  return functor(
9784  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9785  arg2.m_impl.m_value0);
9786  }
9787  case value_variant_type::Type::Type1: {
9788  return functor(
9789  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9790  arg2.m_impl.m_value1);
9791  }
9792  case value_variant_type::Type::Type2: {
9793  return functor(
9794  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9795  arg2.m_impl.m_value2);
9796  }
9797  case value_variant_type::Type::Type3: {
9798  return functor(
9799  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9800  arg2.m_impl.m_value3);
9801  }
9802  case value_variant_type::Type::Type4: {
9803  return functor(
9804  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9805  arg2.m_impl.m_value4);
9806  }
9807  case value_variant_type::Type::Type5: {
9808  return functor(
9809  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9810  arg2.m_impl.m_value5);
9811  }
9812  case value_variant_type::Type::Type6: {
9813  return functor(
9814  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9815  arg2.m_impl.m_value6);
9816  }
9817  case value_variant_type::Type::Type7: {
9818  return functor(
9819  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9820  arg2.m_impl.m_value7);
9821  }
9822  case value_variant_type::Type::Type8: {
9823  return functor(
9824  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9825  arg2.m_impl.m_value8);
9826  }
9827  case value_variant_type::Type::Type9: {
9828  return functor(
9829  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value4,
9830  arg2.m_impl.m_value9);
9831  }
9832  default:
9833  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9834  }
9835  }
9836  case value_variant_type::Type::Type5: {
9837  switch(arg2.m_type)
9838  {
9839  case value_variant_type::Type::Type0: {
9840  return functor(
9841  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9842  arg2.m_impl.m_value0);
9843  }
9844  case value_variant_type::Type::Type1: {
9845  return functor(
9846  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9847  arg2.m_impl.m_value1);
9848  }
9849  case value_variant_type::Type::Type2: {
9850  return functor(
9851  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9852  arg2.m_impl.m_value2);
9853  }
9854  case value_variant_type::Type::Type3: {
9855  return functor(
9856  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9857  arg2.m_impl.m_value3);
9858  }
9859  case value_variant_type::Type::Type4: {
9860  return functor(
9861  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9862  arg2.m_impl.m_value4);
9863  }
9864  case value_variant_type::Type::Type5: {
9865  return functor(
9866  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9867  arg2.m_impl.m_value5);
9868  }
9869  case value_variant_type::Type::Type6: {
9870  return functor(
9871  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9872  arg2.m_impl.m_value6);
9873  }
9874  case value_variant_type::Type::Type7: {
9875  return functor(
9876  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9877  arg2.m_impl.m_value7);
9878  }
9879  case value_variant_type::Type::Type8: {
9880  return functor(
9881  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9882  arg2.m_impl.m_value8);
9883  }
9884  case value_variant_type::Type::Type9: {
9885  return functor(
9886  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value5,
9887  arg2.m_impl.m_value9);
9888  }
9889  default:
9890  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9891  }
9892  }
9893  case value_variant_type::Type::Type6: {
9894  switch(arg2.m_type)
9895  {
9896  case value_variant_type::Type::Type0: {
9897  return functor(
9898  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9899  arg2.m_impl.m_value0);
9900  }
9901  case value_variant_type::Type::Type1: {
9902  return functor(
9903  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9904  arg2.m_impl.m_value1);
9905  }
9906  case value_variant_type::Type::Type2: {
9907  return functor(
9908  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9909  arg2.m_impl.m_value2);
9910  }
9911  case value_variant_type::Type::Type3: {
9912  return functor(
9913  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9914  arg2.m_impl.m_value3);
9915  }
9916  case value_variant_type::Type::Type4: {
9917  return functor(
9918  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9919  arg2.m_impl.m_value4);
9920  }
9921  case value_variant_type::Type::Type5: {
9922  return functor(
9923  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9924  arg2.m_impl.m_value5);
9925  }
9926  case value_variant_type::Type::Type6: {
9927  return functor(
9928  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9929  arg2.m_impl.m_value6);
9930  }
9931  case value_variant_type::Type::Type7: {
9932  return functor(
9933  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9934  arg2.m_impl.m_value7);
9935  }
9936  case value_variant_type::Type::Type8: {
9937  return functor(
9938  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9939  arg2.m_impl.m_value8);
9940  }
9941  case value_variant_type::Type::Type9: {
9942  return functor(
9943  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value6,
9944  arg2.m_impl.m_value9);
9945  }
9946  default:
9947  ossia_do_throw(std::runtime_error, "value_variant: bad type");
9948  }
9949  }
9950  case value_variant_type::Type::Type7: {
9951  switch(arg2.m_type)
9952  {
9953  case value_variant_type::Type::Type0: {
9954  return functor(
9955  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9956  arg2.m_impl.m_value0);
9957  }
9958  case value_variant_type::Type::Type1: {
9959  return functor(
9960  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9961  arg2.m_impl.m_value1);
9962  }
9963  case value_variant_type::Type::Type2: {
9964  return functor(
9965  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9966  arg2.m_impl.m_value2);
9967  }
9968  case value_variant_type::Type::Type3: {
9969  return functor(
9970  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9971  arg2.m_impl.m_value3);
9972  }
9973  case value_variant_type::Type::Type4: {
9974  return functor(
9975  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9976  arg2.m_impl.m_value4);
9977  }
9978  case value_variant_type::Type::Type5: {
9979  return functor(
9980  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9981  arg2.m_impl.m_value5);
9982  }
9983  case value_variant_type::Type::Type6: {
9984  return functor(
9985  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9986  arg2.m_impl.m_value6);
9987  }
9988  case value_variant_type::Type::Type7: {
9989  return functor(
9990  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9991  arg2.m_impl.m_value7);
9992  }
9993  case value_variant_type::Type::Type8: {
9994  return functor(
9995  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
9996  arg2.m_impl.m_value8);
9997  }
9998  case value_variant_type::Type::Type9: {
9999  return functor(
10000  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value7,
10001  arg2.m_impl.m_value9);
10002  }
10003  default:
10004  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10005  }
10006  }
10007  case value_variant_type::Type::Type8: {
10008  switch(arg2.m_type)
10009  {
10010  case value_variant_type::Type::Type0: {
10011  return functor(
10012  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10013  arg2.m_impl.m_value0);
10014  }
10015  case value_variant_type::Type::Type1: {
10016  return functor(
10017  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10018  arg2.m_impl.m_value1);
10019  }
10020  case value_variant_type::Type::Type2: {
10021  return functor(
10022  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10023  arg2.m_impl.m_value2);
10024  }
10025  case value_variant_type::Type::Type3: {
10026  return functor(
10027  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10028  arg2.m_impl.m_value3);
10029  }
10030  case value_variant_type::Type::Type4: {
10031  return functor(
10032  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10033  arg2.m_impl.m_value4);
10034  }
10035  case value_variant_type::Type::Type5: {
10036  return functor(
10037  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10038  arg2.m_impl.m_value5);
10039  }
10040  case value_variant_type::Type::Type6: {
10041  return functor(
10042  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10043  arg2.m_impl.m_value6);
10044  }
10045  case value_variant_type::Type::Type7: {
10046  return functor(
10047  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10048  arg2.m_impl.m_value7);
10049  }
10050  case value_variant_type::Type::Type8: {
10051  return functor(
10052  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10053  arg2.m_impl.m_value8);
10054  }
10055  case value_variant_type::Type::Type9: {
10056  return functor(
10057  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value8,
10058  arg2.m_impl.m_value9);
10059  }
10060  default:
10061  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10062  }
10063  }
10064  case value_variant_type::Type::Type9: {
10065  switch(arg2.m_type)
10066  {
10067  case value_variant_type::Type::Type0: {
10068  return functor(
10069  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10070  arg2.m_impl.m_value0);
10071  }
10072  case value_variant_type::Type::Type1: {
10073  return functor(
10074  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10075  arg2.m_impl.m_value1);
10076  }
10077  case value_variant_type::Type::Type2: {
10078  return functor(
10079  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10080  arg2.m_impl.m_value2);
10081  }
10082  case value_variant_type::Type::Type3: {
10083  return functor(
10084  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10085  arg2.m_impl.m_value3);
10086  }
10087  case value_variant_type::Type::Type4: {
10088  return functor(
10089  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10090  arg2.m_impl.m_value4);
10091  }
10092  case value_variant_type::Type::Type5: {
10093  return functor(
10094  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10095  arg2.m_impl.m_value5);
10096  }
10097  case value_variant_type::Type::Type6: {
10098  return functor(
10099  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10100  arg2.m_impl.m_value6);
10101  }
10102  case value_variant_type::Type::Type7: {
10103  return functor(
10104  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10105  arg2.m_impl.m_value7);
10106  }
10107  case value_variant_type::Type::Type8: {
10108  return functor(
10109  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10110  arg2.m_impl.m_value8);
10111  }
10112  case value_variant_type::Type::Type9: {
10113  return functor(
10114  std::move(arg0.m_impl.m_value4), arg1.m_impl.m_value9,
10115  arg2.m_impl.m_value9);
10116  }
10117  default:
10118  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10119  }
10120  }
10121  default:
10122  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10123  }
10124  }
10125  case value_variant_type::Type::Type5: {
10126  switch(arg1.m_type)
10127  {
10128  case value_variant_type::Type::Type0: {
10129  switch(arg2.m_type)
10130  {
10131  case value_variant_type::Type::Type0: {
10132  return functor(
10133  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10134  arg2.m_impl.m_value0);
10135  }
10136  case value_variant_type::Type::Type1: {
10137  return functor(
10138  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10139  arg2.m_impl.m_value1);
10140  }
10141  case value_variant_type::Type::Type2: {
10142  return functor(
10143  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10144  arg2.m_impl.m_value2);
10145  }
10146  case value_variant_type::Type::Type3: {
10147  return functor(
10148  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10149  arg2.m_impl.m_value3);
10150  }
10151  case value_variant_type::Type::Type4: {
10152  return functor(
10153  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10154  arg2.m_impl.m_value4);
10155  }
10156  case value_variant_type::Type::Type5: {
10157  return functor(
10158  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10159  arg2.m_impl.m_value5);
10160  }
10161  case value_variant_type::Type::Type6: {
10162  return functor(
10163  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10164  arg2.m_impl.m_value6);
10165  }
10166  case value_variant_type::Type::Type7: {
10167  return functor(
10168  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10169  arg2.m_impl.m_value7);
10170  }
10171  case value_variant_type::Type::Type8: {
10172  return functor(
10173  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10174  arg2.m_impl.m_value8);
10175  }
10176  case value_variant_type::Type::Type9: {
10177  return functor(
10178  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value0,
10179  arg2.m_impl.m_value9);
10180  }
10181  default:
10182  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10183  }
10184  }
10185  case value_variant_type::Type::Type1: {
10186  switch(arg2.m_type)
10187  {
10188  case value_variant_type::Type::Type0: {
10189  return functor(
10190  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10191  arg2.m_impl.m_value0);
10192  }
10193  case value_variant_type::Type::Type1: {
10194  return functor(
10195  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10196  arg2.m_impl.m_value1);
10197  }
10198  case value_variant_type::Type::Type2: {
10199  return functor(
10200  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10201  arg2.m_impl.m_value2);
10202  }
10203  case value_variant_type::Type::Type3: {
10204  return functor(
10205  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10206  arg2.m_impl.m_value3);
10207  }
10208  case value_variant_type::Type::Type4: {
10209  return functor(
10210  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10211  arg2.m_impl.m_value4);
10212  }
10213  case value_variant_type::Type::Type5: {
10214  return functor(
10215  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10216  arg2.m_impl.m_value5);
10217  }
10218  case value_variant_type::Type::Type6: {
10219  return functor(
10220  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10221  arg2.m_impl.m_value6);
10222  }
10223  case value_variant_type::Type::Type7: {
10224  return functor(
10225  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10226  arg2.m_impl.m_value7);
10227  }
10228  case value_variant_type::Type::Type8: {
10229  return functor(
10230  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10231  arg2.m_impl.m_value8);
10232  }
10233  case value_variant_type::Type::Type9: {
10234  return functor(
10235  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value1,
10236  arg2.m_impl.m_value9);
10237  }
10238  default:
10239  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10240  }
10241  }
10242  case value_variant_type::Type::Type2: {
10243  switch(arg2.m_type)
10244  {
10245  case value_variant_type::Type::Type0: {
10246  return functor(
10247  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10248  arg2.m_impl.m_value0);
10249  }
10250  case value_variant_type::Type::Type1: {
10251  return functor(
10252  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10253  arg2.m_impl.m_value1);
10254  }
10255  case value_variant_type::Type::Type2: {
10256  return functor(
10257  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10258  arg2.m_impl.m_value2);
10259  }
10260  case value_variant_type::Type::Type3: {
10261  return functor(
10262  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10263  arg2.m_impl.m_value3);
10264  }
10265  case value_variant_type::Type::Type4: {
10266  return functor(
10267  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10268  arg2.m_impl.m_value4);
10269  }
10270  case value_variant_type::Type::Type5: {
10271  return functor(
10272  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10273  arg2.m_impl.m_value5);
10274  }
10275  case value_variant_type::Type::Type6: {
10276  return functor(
10277  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10278  arg2.m_impl.m_value6);
10279  }
10280  case value_variant_type::Type::Type7: {
10281  return functor(
10282  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10283  arg2.m_impl.m_value7);
10284  }
10285  case value_variant_type::Type::Type8: {
10286  return functor(
10287  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10288  arg2.m_impl.m_value8);
10289  }
10290  case value_variant_type::Type::Type9: {
10291  return functor(
10292  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value2,
10293  arg2.m_impl.m_value9);
10294  }
10295  default:
10296  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10297  }
10298  }
10299  case value_variant_type::Type::Type3: {
10300  switch(arg2.m_type)
10301  {
10302  case value_variant_type::Type::Type0: {
10303  return functor(
10304  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10305  arg2.m_impl.m_value0);
10306  }
10307  case value_variant_type::Type::Type1: {
10308  return functor(
10309  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10310  arg2.m_impl.m_value1);
10311  }
10312  case value_variant_type::Type::Type2: {
10313  return functor(
10314  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10315  arg2.m_impl.m_value2);
10316  }
10317  case value_variant_type::Type::Type3: {
10318  return functor(
10319  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10320  arg2.m_impl.m_value3);
10321  }
10322  case value_variant_type::Type::Type4: {
10323  return functor(
10324  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10325  arg2.m_impl.m_value4);
10326  }
10327  case value_variant_type::Type::Type5: {
10328  return functor(
10329  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10330  arg2.m_impl.m_value5);
10331  }
10332  case value_variant_type::Type::Type6: {
10333  return functor(
10334  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10335  arg2.m_impl.m_value6);
10336  }
10337  case value_variant_type::Type::Type7: {
10338  return functor(
10339  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10340  arg2.m_impl.m_value7);
10341  }
10342  case value_variant_type::Type::Type8: {
10343  return functor(
10344  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10345  arg2.m_impl.m_value8);
10346  }
10347  case value_variant_type::Type::Type9: {
10348  return functor(
10349  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value3,
10350  arg2.m_impl.m_value9);
10351  }
10352  default:
10353  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10354  }
10355  }
10356  case value_variant_type::Type::Type4: {
10357  switch(arg2.m_type)
10358  {
10359  case value_variant_type::Type::Type0: {
10360  return functor(
10361  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10362  arg2.m_impl.m_value0);
10363  }
10364  case value_variant_type::Type::Type1: {
10365  return functor(
10366  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10367  arg2.m_impl.m_value1);
10368  }
10369  case value_variant_type::Type::Type2: {
10370  return functor(
10371  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10372  arg2.m_impl.m_value2);
10373  }
10374  case value_variant_type::Type::Type3: {
10375  return functor(
10376  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10377  arg2.m_impl.m_value3);
10378  }
10379  case value_variant_type::Type::Type4: {
10380  return functor(
10381  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10382  arg2.m_impl.m_value4);
10383  }
10384  case value_variant_type::Type::Type5: {
10385  return functor(
10386  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10387  arg2.m_impl.m_value5);
10388  }
10389  case value_variant_type::Type::Type6: {
10390  return functor(
10391  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10392  arg2.m_impl.m_value6);
10393  }
10394  case value_variant_type::Type::Type7: {
10395  return functor(
10396  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10397  arg2.m_impl.m_value7);
10398  }
10399  case value_variant_type::Type::Type8: {
10400  return functor(
10401  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10402  arg2.m_impl.m_value8);
10403  }
10404  case value_variant_type::Type::Type9: {
10405  return functor(
10406  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value4,
10407  arg2.m_impl.m_value9);
10408  }
10409  default:
10410  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10411  }
10412  }
10413  case value_variant_type::Type::Type5: {
10414  switch(arg2.m_type)
10415  {
10416  case value_variant_type::Type::Type0: {
10417  return functor(
10418  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10419  arg2.m_impl.m_value0);
10420  }
10421  case value_variant_type::Type::Type1: {
10422  return functor(
10423  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10424  arg2.m_impl.m_value1);
10425  }
10426  case value_variant_type::Type::Type2: {
10427  return functor(
10428  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10429  arg2.m_impl.m_value2);
10430  }
10431  case value_variant_type::Type::Type3: {
10432  return functor(
10433  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10434  arg2.m_impl.m_value3);
10435  }
10436  case value_variant_type::Type::Type4: {
10437  return functor(
10438  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10439  arg2.m_impl.m_value4);
10440  }
10441  case value_variant_type::Type::Type5: {
10442  return functor(
10443  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10444  arg2.m_impl.m_value5);
10445  }
10446  case value_variant_type::Type::Type6: {
10447  return functor(
10448  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10449  arg2.m_impl.m_value6);
10450  }
10451  case value_variant_type::Type::Type7: {
10452  return functor(
10453  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10454  arg2.m_impl.m_value7);
10455  }
10456  case value_variant_type::Type::Type8: {
10457  return functor(
10458  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10459  arg2.m_impl.m_value8);
10460  }
10461  case value_variant_type::Type::Type9: {
10462  return functor(
10463  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value5,
10464  arg2.m_impl.m_value9);
10465  }
10466  default:
10467  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10468  }
10469  }
10470  case value_variant_type::Type::Type6: {
10471  switch(arg2.m_type)
10472  {
10473  case value_variant_type::Type::Type0: {
10474  return functor(
10475  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10476  arg2.m_impl.m_value0);
10477  }
10478  case value_variant_type::Type::Type1: {
10479  return functor(
10480  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10481  arg2.m_impl.m_value1);
10482  }
10483  case value_variant_type::Type::Type2: {
10484  return functor(
10485  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10486  arg2.m_impl.m_value2);
10487  }
10488  case value_variant_type::Type::Type3: {
10489  return functor(
10490  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10491  arg2.m_impl.m_value3);
10492  }
10493  case value_variant_type::Type::Type4: {
10494  return functor(
10495  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10496  arg2.m_impl.m_value4);
10497  }
10498  case value_variant_type::Type::Type5: {
10499  return functor(
10500  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10501  arg2.m_impl.m_value5);
10502  }
10503  case value_variant_type::Type::Type6: {
10504  return functor(
10505  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10506  arg2.m_impl.m_value6);
10507  }
10508  case value_variant_type::Type::Type7: {
10509  return functor(
10510  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10511  arg2.m_impl.m_value7);
10512  }
10513  case value_variant_type::Type::Type8: {
10514  return functor(
10515  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10516  arg2.m_impl.m_value8);
10517  }
10518  case value_variant_type::Type::Type9: {
10519  return functor(
10520  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value6,
10521  arg2.m_impl.m_value9);
10522  }
10523  default:
10524  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10525  }
10526  }
10527  case value_variant_type::Type::Type7: {
10528  switch(arg2.m_type)
10529  {
10530  case value_variant_type::Type::Type0: {
10531  return functor(
10532  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10533  arg2.m_impl.m_value0);
10534  }
10535  case value_variant_type::Type::Type1: {
10536  return functor(
10537  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10538  arg2.m_impl.m_value1);
10539  }
10540  case value_variant_type::Type::Type2: {
10541  return functor(
10542  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10543  arg2.m_impl.m_value2);
10544  }
10545  case value_variant_type::Type::Type3: {
10546  return functor(
10547  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10548  arg2.m_impl.m_value3);
10549  }
10550  case value_variant_type::Type::Type4: {
10551  return functor(
10552  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10553  arg2.m_impl.m_value4);
10554  }
10555  case value_variant_type::Type::Type5: {
10556  return functor(
10557  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10558  arg2.m_impl.m_value5);
10559  }
10560  case value_variant_type::Type::Type6: {
10561  return functor(
10562  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10563  arg2.m_impl.m_value6);
10564  }
10565  case value_variant_type::Type::Type7: {
10566  return functor(
10567  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10568  arg2.m_impl.m_value7);
10569  }
10570  case value_variant_type::Type::Type8: {
10571  return functor(
10572  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10573  arg2.m_impl.m_value8);
10574  }
10575  case value_variant_type::Type::Type9: {
10576  return functor(
10577  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value7,
10578  arg2.m_impl.m_value9);
10579  }
10580  default:
10581  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10582  }
10583  }
10584  case value_variant_type::Type::Type8: {
10585  switch(arg2.m_type)
10586  {
10587  case value_variant_type::Type::Type0: {
10588  return functor(
10589  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10590  arg2.m_impl.m_value0);
10591  }
10592  case value_variant_type::Type::Type1: {
10593  return functor(
10594  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10595  arg2.m_impl.m_value1);
10596  }
10597  case value_variant_type::Type::Type2: {
10598  return functor(
10599  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10600  arg2.m_impl.m_value2);
10601  }
10602  case value_variant_type::Type::Type3: {
10603  return functor(
10604  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10605  arg2.m_impl.m_value3);
10606  }
10607  case value_variant_type::Type::Type4: {
10608  return functor(
10609  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10610  arg2.m_impl.m_value4);
10611  }
10612  case value_variant_type::Type::Type5: {
10613  return functor(
10614  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10615  arg2.m_impl.m_value5);
10616  }
10617  case value_variant_type::Type::Type6: {
10618  return functor(
10619  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10620  arg2.m_impl.m_value6);
10621  }
10622  case value_variant_type::Type::Type7: {
10623  return functor(
10624  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10625  arg2.m_impl.m_value7);
10626  }
10627  case value_variant_type::Type::Type8: {
10628  return functor(
10629  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10630  arg2.m_impl.m_value8);
10631  }
10632  case value_variant_type::Type::Type9: {
10633  return functor(
10634  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value8,
10635  arg2.m_impl.m_value9);
10636  }
10637  default:
10638  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10639  }
10640  }
10641  case value_variant_type::Type::Type9: {
10642  switch(arg2.m_type)
10643  {
10644  case value_variant_type::Type::Type0: {
10645  return functor(
10646  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10647  arg2.m_impl.m_value0);
10648  }
10649  case value_variant_type::Type::Type1: {
10650  return functor(
10651  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10652  arg2.m_impl.m_value1);
10653  }
10654  case value_variant_type::Type::Type2: {
10655  return functor(
10656  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10657  arg2.m_impl.m_value2);
10658  }
10659  case value_variant_type::Type::Type3: {
10660  return functor(
10661  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10662  arg2.m_impl.m_value3);
10663  }
10664  case value_variant_type::Type::Type4: {
10665  return functor(
10666  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10667  arg2.m_impl.m_value4);
10668  }
10669  case value_variant_type::Type::Type5: {
10670  return functor(
10671  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10672  arg2.m_impl.m_value5);
10673  }
10674  case value_variant_type::Type::Type6: {
10675  return functor(
10676  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10677  arg2.m_impl.m_value6);
10678  }
10679  case value_variant_type::Type::Type7: {
10680  return functor(
10681  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10682  arg2.m_impl.m_value7);
10683  }
10684  case value_variant_type::Type::Type8: {
10685  return functor(
10686  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10687  arg2.m_impl.m_value8);
10688  }
10689  case value_variant_type::Type::Type9: {
10690  return functor(
10691  std::move(arg0.m_impl.m_value5), arg1.m_impl.m_value9,
10692  arg2.m_impl.m_value9);
10693  }
10694  default:
10695  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10696  }
10697  }
10698  default:
10699  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10700  }
10701  }
10702  case value_variant_type::Type::Type6: {
10703  switch(arg1.m_type)
10704  {
10705  case value_variant_type::Type::Type0: {
10706  switch(arg2.m_type)
10707  {
10708  case value_variant_type::Type::Type0: {
10709  return functor(
10710  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10711  arg2.m_impl.m_value0);
10712  }
10713  case value_variant_type::Type::Type1: {
10714  return functor(
10715  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10716  arg2.m_impl.m_value1);
10717  }
10718  case value_variant_type::Type::Type2: {
10719  return functor(
10720  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10721  arg2.m_impl.m_value2);
10722  }
10723  case value_variant_type::Type::Type3: {
10724  return functor(
10725  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10726  arg2.m_impl.m_value3);
10727  }
10728  case value_variant_type::Type::Type4: {
10729  return functor(
10730  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10731  arg2.m_impl.m_value4);
10732  }
10733  case value_variant_type::Type::Type5: {
10734  return functor(
10735  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10736  arg2.m_impl.m_value5);
10737  }
10738  case value_variant_type::Type::Type6: {
10739  return functor(
10740  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10741  arg2.m_impl.m_value6);
10742  }
10743  case value_variant_type::Type::Type7: {
10744  return functor(
10745  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10746  arg2.m_impl.m_value7);
10747  }
10748  case value_variant_type::Type::Type8: {
10749  return functor(
10750  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10751  arg2.m_impl.m_value8);
10752  }
10753  case value_variant_type::Type::Type9: {
10754  return functor(
10755  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value0,
10756  arg2.m_impl.m_value9);
10757  }
10758  default:
10759  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10760  }
10761  }
10762  case value_variant_type::Type::Type1: {
10763  switch(arg2.m_type)
10764  {
10765  case value_variant_type::Type::Type0: {
10766  return functor(
10767  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10768  arg2.m_impl.m_value0);
10769  }
10770  case value_variant_type::Type::Type1: {
10771  return functor(
10772  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10773  arg2.m_impl.m_value1);
10774  }
10775  case value_variant_type::Type::Type2: {
10776  return functor(
10777  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10778  arg2.m_impl.m_value2);
10779  }
10780  case value_variant_type::Type::Type3: {
10781  return functor(
10782  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10783  arg2.m_impl.m_value3);
10784  }
10785  case value_variant_type::Type::Type4: {
10786  return functor(
10787  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10788  arg2.m_impl.m_value4);
10789  }
10790  case value_variant_type::Type::Type5: {
10791  return functor(
10792  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10793  arg2.m_impl.m_value5);
10794  }
10795  case value_variant_type::Type::Type6: {
10796  return functor(
10797  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10798  arg2.m_impl.m_value6);
10799  }
10800  case value_variant_type::Type::Type7: {
10801  return functor(
10802  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10803  arg2.m_impl.m_value7);
10804  }
10805  case value_variant_type::Type::Type8: {
10806  return functor(
10807  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10808  arg2.m_impl.m_value8);
10809  }
10810  case value_variant_type::Type::Type9: {
10811  return functor(
10812  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value1,
10813  arg2.m_impl.m_value9);
10814  }
10815  default:
10816  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10817  }
10818  }
10819  case value_variant_type::Type::Type2: {
10820  switch(arg2.m_type)
10821  {
10822  case value_variant_type::Type::Type0: {
10823  return functor(
10824  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10825  arg2.m_impl.m_value0);
10826  }
10827  case value_variant_type::Type::Type1: {
10828  return functor(
10829  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10830  arg2.m_impl.m_value1);
10831  }
10832  case value_variant_type::Type::Type2: {
10833  return functor(
10834  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10835  arg2.m_impl.m_value2);
10836  }
10837  case value_variant_type::Type::Type3: {
10838  return functor(
10839  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10840  arg2.m_impl.m_value3);
10841  }
10842  case value_variant_type::Type::Type4: {
10843  return functor(
10844  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10845  arg2.m_impl.m_value4);
10846  }
10847  case value_variant_type::Type::Type5: {
10848  return functor(
10849  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10850  arg2.m_impl.m_value5);
10851  }
10852  case value_variant_type::Type::Type6: {
10853  return functor(
10854  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10855  arg2.m_impl.m_value6);
10856  }
10857  case value_variant_type::Type::Type7: {
10858  return functor(
10859  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10860  arg2.m_impl.m_value7);
10861  }
10862  case value_variant_type::Type::Type8: {
10863  return functor(
10864  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10865  arg2.m_impl.m_value8);
10866  }
10867  case value_variant_type::Type::Type9: {
10868  return functor(
10869  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value2,
10870  arg2.m_impl.m_value9);
10871  }
10872  default:
10873  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10874  }
10875  }
10876  case value_variant_type::Type::Type3: {
10877  switch(arg2.m_type)
10878  {
10879  case value_variant_type::Type::Type0: {
10880  return functor(
10881  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10882  arg2.m_impl.m_value0);
10883  }
10884  case value_variant_type::Type::Type1: {
10885  return functor(
10886  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10887  arg2.m_impl.m_value1);
10888  }
10889  case value_variant_type::Type::Type2: {
10890  return functor(
10891  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10892  arg2.m_impl.m_value2);
10893  }
10894  case value_variant_type::Type::Type3: {
10895  return functor(
10896  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10897  arg2.m_impl.m_value3);
10898  }
10899  case value_variant_type::Type::Type4: {
10900  return functor(
10901  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10902  arg2.m_impl.m_value4);
10903  }
10904  case value_variant_type::Type::Type5: {
10905  return functor(
10906  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10907  arg2.m_impl.m_value5);
10908  }
10909  case value_variant_type::Type::Type6: {
10910  return functor(
10911  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10912  arg2.m_impl.m_value6);
10913  }
10914  case value_variant_type::Type::Type7: {
10915  return functor(
10916  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10917  arg2.m_impl.m_value7);
10918  }
10919  case value_variant_type::Type::Type8: {
10920  return functor(
10921  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10922  arg2.m_impl.m_value8);
10923  }
10924  case value_variant_type::Type::Type9: {
10925  return functor(
10926  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value3,
10927  arg2.m_impl.m_value9);
10928  }
10929  default:
10930  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10931  }
10932  }
10933  case value_variant_type::Type::Type4: {
10934  switch(arg2.m_type)
10935  {
10936  case value_variant_type::Type::Type0: {
10937  return functor(
10938  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10939  arg2.m_impl.m_value0);
10940  }
10941  case value_variant_type::Type::Type1: {
10942  return functor(
10943  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10944  arg2.m_impl.m_value1);
10945  }
10946  case value_variant_type::Type::Type2: {
10947  return functor(
10948  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10949  arg2.m_impl.m_value2);
10950  }
10951  case value_variant_type::Type::Type3: {
10952  return functor(
10953  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10954  arg2.m_impl.m_value3);
10955  }
10956  case value_variant_type::Type::Type4: {
10957  return functor(
10958  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10959  arg2.m_impl.m_value4);
10960  }
10961  case value_variant_type::Type::Type5: {
10962  return functor(
10963  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10964  arg2.m_impl.m_value5);
10965  }
10966  case value_variant_type::Type::Type6: {
10967  return functor(
10968  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10969  arg2.m_impl.m_value6);
10970  }
10971  case value_variant_type::Type::Type7: {
10972  return functor(
10973  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10974  arg2.m_impl.m_value7);
10975  }
10976  case value_variant_type::Type::Type8: {
10977  return functor(
10978  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10979  arg2.m_impl.m_value8);
10980  }
10981  case value_variant_type::Type::Type9: {
10982  return functor(
10983  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value4,
10984  arg2.m_impl.m_value9);
10985  }
10986  default:
10987  ossia_do_throw(std::runtime_error, "value_variant: bad type");
10988  }
10989  }
10990  case value_variant_type::Type::Type5: {
10991  switch(arg2.m_type)
10992  {
10993  case value_variant_type::Type::Type0: {
10994  return functor(
10995  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
10996  arg2.m_impl.m_value0);
10997  }
10998  case value_variant_type::Type::Type1: {
10999  return functor(
11000  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11001  arg2.m_impl.m_value1);
11002  }
11003  case value_variant_type::Type::Type2: {
11004  return functor(
11005  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11006  arg2.m_impl.m_value2);
11007  }
11008  case value_variant_type::Type::Type3: {
11009  return functor(
11010  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11011  arg2.m_impl.m_value3);
11012  }
11013  case value_variant_type::Type::Type4: {
11014  return functor(
11015  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11016  arg2.m_impl.m_value4);
11017  }
11018  case value_variant_type::Type::Type5: {
11019  return functor(
11020  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11021  arg2.m_impl.m_value5);
11022  }
11023  case value_variant_type::Type::Type6: {
11024  return functor(
11025  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11026  arg2.m_impl.m_value6);
11027  }
11028  case value_variant_type::Type::Type7: {
11029  return functor(
11030  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11031  arg2.m_impl.m_value7);
11032  }
11033  case value_variant_type::Type::Type8: {
11034  return functor(
11035  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11036  arg2.m_impl.m_value8);
11037  }
11038  case value_variant_type::Type::Type9: {
11039  return functor(
11040  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value5,
11041  arg2.m_impl.m_value9);
11042  }
11043  default:
11044  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11045  }
11046  }
11047  case value_variant_type::Type::Type6: {
11048  switch(arg2.m_type)
11049  {
11050  case value_variant_type::Type::Type0: {
11051  return functor(
11052  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11053  arg2.m_impl.m_value0);
11054  }
11055  case value_variant_type::Type::Type1: {
11056  return functor(
11057  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11058  arg2.m_impl.m_value1);
11059  }
11060  case value_variant_type::Type::Type2: {
11061  return functor(
11062  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11063  arg2.m_impl.m_value2);
11064  }
11065  case value_variant_type::Type::Type3: {
11066  return functor(
11067  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11068  arg2.m_impl.m_value3);
11069  }
11070  case value_variant_type::Type::Type4: {
11071  return functor(
11072  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11073  arg2.m_impl.m_value4);
11074  }
11075  case value_variant_type::Type::Type5: {
11076  return functor(
11077  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11078  arg2.m_impl.m_value5);
11079  }
11080  case value_variant_type::Type::Type6: {
11081  return functor(
11082  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11083  arg2.m_impl.m_value6);
11084  }
11085  case value_variant_type::Type::Type7: {
11086  return functor(
11087  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11088  arg2.m_impl.m_value7);
11089  }
11090  case value_variant_type::Type::Type8: {
11091  return functor(
11092  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11093  arg2.m_impl.m_value8);
11094  }
11095  case value_variant_type::Type::Type9: {
11096  return functor(
11097  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value6,
11098  arg2.m_impl.m_value9);
11099  }
11100  default:
11101  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11102  }
11103  }
11104  case value_variant_type::Type::Type7: {
11105  switch(arg2.m_type)
11106  {
11107  case value_variant_type::Type::Type0: {
11108  return functor(
11109  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11110  arg2.m_impl.m_value0);
11111  }
11112  case value_variant_type::Type::Type1: {
11113  return functor(
11114  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11115  arg2.m_impl.m_value1);
11116  }
11117  case value_variant_type::Type::Type2: {
11118  return functor(
11119  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11120  arg2.m_impl.m_value2);
11121  }
11122  case value_variant_type::Type::Type3: {
11123  return functor(
11124  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11125  arg2.m_impl.m_value3);
11126  }
11127  case value_variant_type::Type::Type4: {
11128  return functor(
11129  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11130  arg2.m_impl.m_value4);
11131  }
11132  case value_variant_type::Type::Type5: {
11133  return functor(
11134  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11135  arg2.m_impl.m_value5);
11136  }
11137  case value_variant_type::Type::Type6: {
11138  return functor(
11139  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11140  arg2.m_impl.m_value6);
11141  }
11142  case value_variant_type::Type::Type7: {
11143  return functor(
11144  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11145  arg2.m_impl.m_value7);
11146  }
11147  case value_variant_type::Type::Type8: {
11148  return functor(
11149  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11150  arg2.m_impl.m_value8);
11151  }
11152  case value_variant_type::Type::Type9: {
11153  return functor(
11154  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value7,
11155  arg2.m_impl.m_value9);
11156  }
11157  default:
11158  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11159  }
11160  }
11161  case value_variant_type::Type::Type8: {
11162  switch(arg2.m_type)
11163  {
11164  case value_variant_type::Type::Type0: {
11165  return functor(
11166  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11167  arg2.m_impl.m_value0);
11168  }
11169  case value_variant_type::Type::Type1: {
11170  return functor(
11171  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11172  arg2.m_impl.m_value1);
11173  }
11174  case value_variant_type::Type::Type2: {
11175  return functor(
11176  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11177  arg2.m_impl.m_value2);
11178  }
11179  case value_variant_type::Type::Type3: {
11180  return functor(
11181  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11182  arg2.m_impl.m_value3);
11183  }
11184  case value_variant_type::Type::Type4: {
11185  return functor(
11186  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11187  arg2.m_impl.m_value4);
11188  }
11189  case value_variant_type::Type::Type5: {
11190  return functor(
11191  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11192  arg2.m_impl.m_value5);
11193  }
11194  case value_variant_type::Type::Type6: {
11195  return functor(
11196  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11197  arg2.m_impl.m_value6);
11198  }
11199  case value_variant_type::Type::Type7: {
11200  return functor(
11201  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11202  arg2.m_impl.m_value7);
11203  }
11204  case value_variant_type::Type::Type8: {
11205  return functor(
11206  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11207  arg2.m_impl.m_value8);
11208  }
11209  case value_variant_type::Type::Type9: {
11210  return functor(
11211  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value8,
11212  arg2.m_impl.m_value9);
11213  }
11214  default:
11215  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11216  }
11217  }
11218  case value_variant_type::Type::Type9: {
11219  switch(arg2.m_type)
11220  {
11221  case value_variant_type::Type::Type0: {
11222  return functor(
11223  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11224  arg2.m_impl.m_value0);
11225  }
11226  case value_variant_type::Type::Type1: {
11227  return functor(
11228  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11229  arg2.m_impl.m_value1);
11230  }
11231  case value_variant_type::Type::Type2: {
11232  return functor(
11233  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11234  arg2.m_impl.m_value2);
11235  }
11236  case value_variant_type::Type::Type3: {
11237  return functor(
11238  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11239  arg2.m_impl.m_value3);
11240  }
11241  case value_variant_type::Type::Type4: {
11242  return functor(
11243  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11244  arg2.m_impl.m_value4);
11245  }
11246  case value_variant_type::Type::Type5: {
11247  return functor(
11248  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11249  arg2.m_impl.m_value5);
11250  }
11251  case value_variant_type::Type::Type6: {
11252  return functor(
11253  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11254  arg2.m_impl.m_value6);
11255  }
11256  case value_variant_type::Type::Type7: {
11257  return functor(
11258  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11259  arg2.m_impl.m_value7);
11260  }
11261  case value_variant_type::Type::Type8: {
11262  return functor(
11263  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11264  arg2.m_impl.m_value8);
11265  }
11266  case value_variant_type::Type::Type9: {
11267  return functor(
11268  std::move(arg0.m_impl.m_value6), arg1.m_impl.m_value9,
11269  arg2.m_impl.m_value9);
11270  }
11271  default:
11272  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11273  }
11274  }
11275  default:
11276  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11277  }
11278  }
11279  case value_variant_type::Type::Type7: {
11280  switch(arg1.m_type)
11281  {
11282  case value_variant_type::Type::Type0: {
11283  switch(arg2.m_type)
11284  {
11285  case value_variant_type::Type::Type0: {
11286  return functor(
11287  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11288  arg2.m_impl.m_value0);
11289  }
11290  case value_variant_type::Type::Type1: {
11291  return functor(
11292  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11293  arg2.m_impl.m_value1);
11294  }
11295  case value_variant_type::Type::Type2: {
11296  return functor(
11297  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11298  arg2.m_impl.m_value2);
11299  }
11300  case value_variant_type::Type::Type3: {
11301  return functor(
11302  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11303  arg2.m_impl.m_value3);
11304  }
11305  case value_variant_type::Type::Type4: {
11306  return functor(
11307  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11308  arg2.m_impl.m_value4);
11309  }
11310  case value_variant_type::Type::Type5: {
11311  return functor(
11312  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11313  arg2.m_impl.m_value5);
11314  }
11315  case value_variant_type::Type::Type6: {
11316  return functor(
11317  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11318  arg2.m_impl.m_value6);
11319  }
11320  case value_variant_type::Type::Type7: {
11321  return functor(
11322  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11323  arg2.m_impl.m_value7);
11324  }
11325  case value_variant_type::Type::Type8: {
11326  return functor(
11327  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11328  arg2.m_impl.m_value8);
11329  }
11330  case value_variant_type::Type::Type9: {
11331  return functor(
11332  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value0,
11333  arg2.m_impl.m_value9);
11334  }
11335  default:
11336  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11337  }
11338  }
11339  case value_variant_type::Type::Type1: {
11340  switch(arg2.m_type)
11341  {
11342  case value_variant_type::Type::Type0: {
11343  return functor(
11344  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11345  arg2.m_impl.m_value0);
11346  }
11347  case value_variant_type::Type::Type1: {
11348  return functor(
11349  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11350  arg2.m_impl.m_value1);
11351  }
11352  case value_variant_type::Type::Type2: {
11353  return functor(
11354  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11355  arg2.m_impl.m_value2);
11356  }
11357  case value_variant_type::Type::Type3: {
11358  return functor(
11359  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11360  arg2.m_impl.m_value3);
11361  }
11362  case value_variant_type::Type::Type4: {
11363  return functor(
11364  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11365  arg2.m_impl.m_value4);
11366  }
11367  case value_variant_type::Type::Type5: {
11368  return functor(
11369  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11370  arg2.m_impl.m_value5);
11371  }
11372  case value_variant_type::Type::Type6: {
11373  return functor(
11374  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11375  arg2.m_impl.m_value6);
11376  }
11377  case value_variant_type::Type::Type7: {
11378  return functor(
11379  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11380  arg2.m_impl.m_value7);
11381  }
11382  case value_variant_type::Type::Type8: {
11383  return functor(
11384  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11385  arg2.m_impl.m_value8);
11386  }
11387  case value_variant_type::Type::Type9: {
11388  return functor(
11389  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value1,
11390  arg2.m_impl.m_value9);
11391  }
11392  default:
11393  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11394  }
11395  }
11396  case value_variant_type::Type::Type2: {
11397  switch(arg2.m_type)
11398  {
11399  case value_variant_type::Type::Type0: {
11400  return functor(
11401  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11402  arg2.m_impl.m_value0);
11403  }
11404  case value_variant_type::Type::Type1: {
11405  return functor(
11406  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11407  arg2.m_impl.m_value1);
11408  }
11409  case value_variant_type::Type::Type2: {
11410  return functor(
11411  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11412  arg2.m_impl.m_value2);
11413  }
11414  case value_variant_type::Type::Type3: {
11415  return functor(
11416  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11417  arg2.m_impl.m_value3);
11418  }
11419  case value_variant_type::Type::Type4: {
11420  return functor(
11421  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11422  arg2.m_impl.m_value4);
11423  }
11424  case value_variant_type::Type::Type5: {
11425  return functor(
11426  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11427  arg2.m_impl.m_value5);
11428  }
11429  case value_variant_type::Type::Type6: {
11430  return functor(
11431  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11432  arg2.m_impl.m_value6);
11433  }
11434  case value_variant_type::Type::Type7: {
11435  return functor(
11436  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11437  arg2.m_impl.m_value7);
11438  }
11439  case value_variant_type::Type::Type8: {
11440  return functor(
11441  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11442  arg2.m_impl.m_value8);
11443  }
11444  case value_variant_type::Type::Type9: {
11445  return functor(
11446  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value2,
11447  arg2.m_impl.m_value9);
11448  }
11449  default:
11450  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11451  }
11452  }
11453  case value_variant_type::Type::Type3: {
11454  switch(arg2.m_type)
11455  {
11456  case value_variant_type::Type::Type0: {
11457  return functor(
11458  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11459  arg2.m_impl.m_value0);
11460  }
11461  case value_variant_type::Type::Type1: {
11462  return functor(
11463  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11464  arg2.m_impl.m_value1);
11465  }
11466  case value_variant_type::Type::Type2: {
11467  return functor(
11468  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11469  arg2.m_impl.m_value2);
11470  }
11471  case value_variant_type::Type::Type3: {
11472  return functor(
11473  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11474  arg2.m_impl.m_value3);
11475  }
11476  case value_variant_type::Type::Type4: {
11477  return functor(
11478  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11479  arg2.m_impl.m_value4);
11480  }
11481  case value_variant_type::Type::Type5: {
11482  return functor(
11483  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11484  arg2.m_impl.m_value5);
11485  }
11486  case value_variant_type::Type::Type6: {
11487  return functor(
11488  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11489  arg2.m_impl.m_value6);
11490  }
11491  case value_variant_type::Type::Type7: {
11492  return functor(
11493  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11494  arg2.m_impl.m_value7);
11495  }
11496  case value_variant_type::Type::Type8: {
11497  return functor(
11498  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11499  arg2.m_impl.m_value8);
11500  }
11501  case value_variant_type::Type::Type9: {
11502  return functor(
11503  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value3,
11504  arg2.m_impl.m_value9);
11505  }
11506  default:
11507  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11508  }
11509  }
11510  case value_variant_type::Type::Type4: {
11511  switch(arg2.m_type)
11512  {
11513  case value_variant_type::Type::Type0: {
11514  return functor(
11515  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11516  arg2.m_impl.m_value0);
11517  }
11518  case value_variant_type::Type::Type1: {
11519  return functor(
11520  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11521  arg2.m_impl.m_value1);
11522  }
11523  case value_variant_type::Type::Type2: {
11524  return functor(
11525  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11526  arg2.m_impl.m_value2);
11527  }
11528  case value_variant_type::Type::Type3: {
11529  return functor(
11530  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11531  arg2.m_impl.m_value3);
11532  }
11533  case value_variant_type::Type::Type4: {
11534  return functor(
11535  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11536  arg2.m_impl.m_value4);
11537  }
11538  case value_variant_type::Type::Type5: {
11539  return functor(
11540  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11541  arg2.m_impl.m_value5);
11542  }
11543  case value_variant_type::Type::Type6: {
11544  return functor(
11545  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11546  arg2.m_impl.m_value6);
11547  }
11548  case value_variant_type::Type::Type7: {
11549  return functor(
11550  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11551  arg2.m_impl.m_value7);
11552  }
11553  case value_variant_type::Type::Type8: {
11554  return functor(
11555  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11556  arg2.m_impl.m_value8);
11557  }
11558  case value_variant_type::Type::Type9: {
11559  return functor(
11560  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value4,
11561  arg2.m_impl.m_value9);
11562  }
11563  default:
11564  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11565  }
11566  }
11567  case value_variant_type::Type::Type5: {
11568  switch(arg2.m_type)
11569  {
11570  case value_variant_type::Type::Type0: {
11571  return functor(
11572  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11573  arg2.m_impl.m_value0);
11574  }
11575  case value_variant_type::Type::Type1: {
11576  return functor(
11577  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11578  arg2.m_impl.m_value1);
11579  }
11580  case value_variant_type::Type::Type2: {
11581  return functor(
11582  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11583  arg2.m_impl.m_value2);
11584  }
11585  case value_variant_type::Type::Type3: {
11586  return functor(
11587  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11588  arg2.m_impl.m_value3);
11589  }
11590  case value_variant_type::Type::Type4: {
11591  return functor(
11592  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11593  arg2.m_impl.m_value4);
11594  }
11595  case value_variant_type::Type::Type5: {
11596  return functor(
11597  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11598  arg2.m_impl.m_value5);
11599  }
11600  case value_variant_type::Type::Type6: {
11601  return functor(
11602  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11603  arg2.m_impl.m_value6);
11604  }
11605  case value_variant_type::Type::Type7: {
11606  return functor(
11607  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11608  arg2.m_impl.m_value7);
11609  }
11610  case value_variant_type::Type::Type8: {
11611  return functor(
11612  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11613  arg2.m_impl.m_value8);
11614  }
11615  case value_variant_type::Type::Type9: {
11616  return functor(
11617  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value5,
11618  arg2.m_impl.m_value9);
11619  }
11620  default:
11621  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11622  }
11623  }
11624  case value_variant_type::Type::Type6: {
11625  switch(arg2.m_type)
11626  {
11627  case value_variant_type::Type::Type0: {
11628  return functor(
11629  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11630  arg2.m_impl.m_value0);
11631  }
11632  case value_variant_type::Type::Type1: {
11633  return functor(
11634  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11635  arg2.m_impl.m_value1);
11636  }
11637  case value_variant_type::Type::Type2: {
11638  return functor(
11639  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11640  arg2.m_impl.m_value2);
11641  }
11642  case value_variant_type::Type::Type3: {
11643  return functor(
11644  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11645  arg2.m_impl.m_value3);
11646  }
11647  case value_variant_type::Type::Type4: {
11648  return functor(
11649  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11650  arg2.m_impl.m_value4);
11651  }
11652  case value_variant_type::Type::Type5: {
11653  return functor(
11654  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11655  arg2.m_impl.m_value5);
11656  }
11657  case value_variant_type::Type::Type6: {
11658  return functor(
11659  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11660  arg2.m_impl.m_value6);
11661  }
11662  case value_variant_type::Type::Type7: {
11663  return functor(
11664  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11665  arg2.m_impl.m_value7);
11666  }
11667  case value_variant_type::Type::Type8: {
11668  return functor(
11669  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11670  arg2.m_impl.m_value8);
11671  }
11672  case value_variant_type::Type::Type9: {
11673  return functor(
11674  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value6,
11675  arg2.m_impl.m_value9);
11676  }
11677  default:
11678  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11679  }
11680  }
11681  case value_variant_type::Type::Type7: {
11682  switch(arg2.m_type)
11683  {
11684  case value_variant_type::Type::Type0: {
11685  return functor(
11686  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11687  arg2.m_impl.m_value0);
11688  }
11689  case value_variant_type::Type::Type1: {
11690  return functor(
11691  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11692  arg2.m_impl.m_value1);
11693  }
11694  case value_variant_type::Type::Type2: {
11695  return functor(
11696  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11697  arg2.m_impl.m_value2);
11698  }
11699  case value_variant_type::Type::Type3: {
11700  return functor(
11701  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11702  arg2.m_impl.m_value3);
11703  }
11704  case value_variant_type::Type::Type4: {
11705  return functor(
11706  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11707  arg2.m_impl.m_value4);
11708  }
11709  case value_variant_type::Type::Type5: {
11710  return functor(
11711  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11712  arg2.m_impl.m_value5);
11713  }
11714  case value_variant_type::Type::Type6: {
11715  return functor(
11716  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11717  arg2.m_impl.m_value6);
11718  }
11719  case value_variant_type::Type::Type7: {
11720  return functor(
11721  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11722  arg2.m_impl.m_value7);
11723  }
11724  case value_variant_type::Type::Type8: {
11725  return functor(
11726  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11727  arg2.m_impl.m_value8);
11728  }
11729  case value_variant_type::Type::Type9: {
11730  return functor(
11731  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value7,
11732  arg2.m_impl.m_value9);
11733  }
11734  default:
11735  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11736  }
11737  }
11738  case value_variant_type::Type::Type8: {
11739  switch(arg2.m_type)
11740  {
11741  case value_variant_type::Type::Type0: {
11742  return functor(
11743  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11744  arg2.m_impl.m_value0);
11745  }
11746  case value_variant_type::Type::Type1: {
11747  return functor(
11748  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11749  arg2.m_impl.m_value1);
11750  }
11751  case value_variant_type::Type::Type2: {
11752  return functor(
11753  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11754  arg2.m_impl.m_value2);
11755  }
11756  case value_variant_type::Type::Type3: {
11757  return functor(
11758  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11759  arg2.m_impl.m_value3);
11760  }
11761  case value_variant_type::Type::Type4: {
11762  return functor(
11763  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11764  arg2.m_impl.m_value4);
11765  }
11766  case value_variant_type::Type::Type5: {
11767  return functor(
11768  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11769  arg2.m_impl.m_value5);
11770  }
11771  case value_variant_type::Type::Type6: {
11772  return functor(
11773  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11774  arg2.m_impl.m_value6);
11775  }
11776  case value_variant_type::Type::Type7: {
11777  return functor(
11778  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11779  arg2.m_impl.m_value7);
11780  }
11781  case value_variant_type::Type::Type8: {
11782  return functor(
11783  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11784  arg2.m_impl.m_value8);
11785  }
11786  case value_variant_type::Type::Type9: {
11787  return functor(
11788  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value8,
11789  arg2.m_impl.m_value9);
11790  }
11791  default:
11792  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11793  }
11794  }
11795  case value_variant_type::Type::Type9: {
11796  switch(arg2.m_type)
11797  {
11798  case value_variant_type::Type::Type0: {
11799  return functor(
11800  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11801  arg2.m_impl.m_value0);
11802  }
11803  case value_variant_type::Type::Type1: {
11804  return functor(
11805  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11806  arg2.m_impl.m_value1);
11807  }
11808  case value_variant_type::Type::Type2: {
11809  return functor(
11810  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11811  arg2.m_impl.m_value2);
11812  }
11813  case value_variant_type::Type::Type3: {
11814  return functor(
11815  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11816  arg2.m_impl.m_value3);
11817  }
11818  case value_variant_type::Type::Type4: {
11819  return functor(
11820  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11821  arg2.m_impl.m_value4);
11822  }
11823  case value_variant_type::Type::Type5: {
11824  return functor(
11825  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11826  arg2.m_impl.m_value5);
11827  }
11828  case value_variant_type::Type::Type6: {
11829  return functor(
11830  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11831  arg2.m_impl.m_value6);
11832  }
11833  case value_variant_type::Type::Type7: {
11834  return functor(
11835  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11836  arg2.m_impl.m_value7);
11837  }
11838  case value_variant_type::Type::Type8: {
11839  return functor(
11840  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11841  arg2.m_impl.m_value8);
11842  }
11843  case value_variant_type::Type::Type9: {
11844  return functor(
11845  std::move(arg0.m_impl.m_value7), arg1.m_impl.m_value9,
11846  arg2.m_impl.m_value9);
11847  }
11848  default:
11849  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11850  }
11851  }
11852  default:
11853  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11854  }
11855  }
11856  case value_variant_type::Type::Type8: {
11857  switch(arg1.m_type)
11858  {
11859  case value_variant_type::Type::Type0: {
11860  switch(arg2.m_type)
11861  {
11862  case value_variant_type::Type::Type0: {
11863  return functor(
11864  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11865  arg2.m_impl.m_value0);
11866  }
11867  case value_variant_type::Type::Type1: {
11868  return functor(
11869  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11870  arg2.m_impl.m_value1);
11871  }
11872  case value_variant_type::Type::Type2: {
11873  return functor(
11874  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11875  arg2.m_impl.m_value2);
11876  }
11877  case value_variant_type::Type::Type3: {
11878  return functor(
11879  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11880  arg2.m_impl.m_value3);
11881  }
11882  case value_variant_type::Type::Type4: {
11883  return functor(
11884  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11885  arg2.m_impl.m_value4);
11886  }
11887  case value_variant_type::Type::Type5: {
11888  return functor(
11889  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11890  arg2.m_impl.m_value5);
11891  }
11892  case value_variant_type::Type::Type6: {
11893  return functor(
11894  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11895  arg2.m_impl.m_value6);
11896  }
11897  case value_variant_type::Type::Type7: {
11898  return functor(
11899  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11900  arg2.m_impl.m_value7);
11901  }
11902  case value_variant_type::Type::Type8: {
11903  return functor(
11904  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11905  arg2.m_impl.m_value8);
11906  }
11907  case value_variant_type::Type::Type9: {
11908  return functor(
11909  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value0,
11910  arg2.m_impl.m_value9);
11911  }
11912  default:
11913  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11914  }
11915  }
11916  case value_variant_type::Type::Type1: {
11917  switch(arg2.m_type)
11918  {
11919  case value_variant_type::Type::Type0: {
11920  return functor(
11921  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11922  arg2.m_impl.m_value0);
11923  }
11924  case value_variant_type::Type::Type1: {
11925  return functor(
11926  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11927  arg2.m_impl.m_value1);
11928  }
11929  case value_variant_type::Type::Type2: {
11930  return functor(
11931  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11932  arg2.m_impl.m_value2);
11933  }
11934  case value_variant_type::Type::Type3: {
11935  return functor(
11936  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11937  arg2.m_impl.m_value3);
11938  }
11939  case value_variant_type::Type::Type4: {
11940  return functor(
11941  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11942  arg2.m_impl.m_value4);
11943  }
11944  case value_variant_type::Type::Type5: {
11945  return functor(
11946  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11947  arg2.m_impl.m_value5);
11948  }
11949  case value_variant_type::Type::Type6: {
11950  return functor(
11951  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11952  arg2.m_impl.m_value6);
11953  }
11954  case value_variant_type::Type::Type7: {
11955  return functor(
11956  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11957  arg2.m_impl.m_value7);
11958  }
11959  case value_variant_type::Type::Type8: {
11960  return functor(
11961  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11962  arg2.m_impl.m_value8);
11963  }
11964  case value_variant_type::Type::Type9: {
11965  return functor(
11966  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value1,
11967  arg2.m_impl.m_value9);
11968  }
11969  default:
11970  ossia_do_throw(std::runtime_error, "value_variant: bad type");
11971  }
11972  }
11973  case value_variant_type::Type::Type2: {
11974  switch(arg2.m_type)
11975  {
11976  case value_variant_type::Type::Type0: {
11977  return functor(
11978  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
11979  arg2.m_impl.m_value0);
11980  }
11981  case value_variant_type::Type::Type1: {
11982  return functor(
11983  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
11984  arg2.m_impl.m_value1);
11985  }
11986  case value_variant_type::Type::Type2: {
11987  return functor(
11988  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
11989  arg2.m_impl.m_value2);
11990  }
11991  case value_variant_type::Type::Type3: {
11992  return functor(
11993  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
11994  arg2.m_impl.m_value3);
11995  }
11996  case value_variant_type::Type::Type4: {
11997  return functor(
11998  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
11999  arg2.m_impl.m_value4);
12000  }
12001  case value_variant_type::Type::Type5: {
12002  return functor(
12003  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
12004  arg2.m_impl.m_value5);
12005  }
12006  case value_variant_type::Type::Type6: {
12007  return functor(
12008  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
12009  arg2.m_impl.m_value6);
12010  }
12011  case value_variant_type::Type::Type7: {
12012  return functor(
12013  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
12014  arg2.m_impl.m_value7);
12015  }
12016  case value_variant_type::Type::Type8: {
12017  return functor(
12018  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
12019  arg2.m_impl.m_value8);
12020  }
12021  case value_variant_type::Type::Type9: {
12022  return functor(
12023  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value2,
12024  arg2.m_impl.m_value9);
12025  }
12026  default:
12027  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12028  }
12029  }
12030  case value_variant_type::Type::Type3: {
12031  switch(arg2.m_type)
12032  {
12033  case value_variant_type::Type::Type0: {
12034  return functor(
12035  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12036  arg2.m_impl.m_value0);
12037  }
12038  case value_variant_type::Type::Type1: {
12039  return functor(
12040  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12041  arg2.m_impl.m_value1);
12042  }
12043  case value_variant_type::Type::Type2: {
12044  return functor(
12045  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12046  arg2.m_impl.m_value2);
12047  }
12048  case value_variant_type::Type::Type3: {
12049  return functor(
12050  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12051  arg2.m_impl.m_value3);
12052  }
12053  case value_variant_type::Type::Type4: {
12054  return functor(
12055  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12056  arg2.m_impl.m_value4);
12057  }
12058  case value_variant_type::Type::Type5: {
12059  return functor(
12060  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12061  arg2.m_impl.m_value5);
12062  }
12063  case value_variant_type::Type::Type6: {
12064  return functor(
12065  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12066  arg2.m_impl.m_value6);
12067  }
12068  case value_variant_type::Type::Type7: {
12069  return functor(
12070  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12071  arg2.m_impl.m_value7);
12072  }
12073  case value_variant_type::Type::Type8: {
12074  return functor(
12075  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12076  arg2.m_impl.m_value8);
12077  }
12078  case value_variant_type::Type::Type9: {
12079  return functor(
12080  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value3,
12081  arg2.m_impl.m_value9);
12082  }
12083  default:
12084  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12085  }
12086  }
12087  case value_variant_type::Type::Type4: {
12088  switch(arg2.m_type)
12089  {
12090  case value_variant_type::Type::Type0: {
12091  return functor(
12092  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12093  arg2.m_impl.m_value0);
12094  }
12095  case value_variant_type::Type::Type1: {
12096  return functor(
12097  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12098  arg2.m_impl.m_value1);
12099  }
12100  case value_variant_type::Type::Type2: {
12101  return functor(
12102  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12103  arg2.m_impl.m_value2);
12104  }
12105  case value_variant_type::Type::Type3: {
12106  return functor(
12107  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12108  arg2.m_impl.m_value3);
12109  }
12110  case value_variant_type::Type::Type4: {
12111  return functor(
12112  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12113  arg2.m_impl.m_value4);
12114  }
12115  case value_variant_type::Type::Type5: {
12116  return functor(
12117  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12118  arg2.m_impl.m_value5);
12119  }
12120  case value_variant_type::Type::Type6: {
12121  return functor(
12122  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12123  arg2.m_impl.m_value6);
12124  }
12125  case value_variant_type::Type::Type7: {
12126  return functor(
12127  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12128  arg2.m_impl.m_value7);
12129  }
12130  case value_variant_type::Type::Type8: {
12131  return functor(
12132  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12133  arg2.m_impl.m_value8);
12134  }
12135  case value_variant_type::Type::Type9: {
12136  return functor(
12137  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value4,
12138  arg2.m_impl.m_value9);
12139  }
12140  default:
12141  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12142  }
12143  }
12144  case value_variant_type::Type::Type5: {
12145  switch(arg2.m_type)
12146  {
12147  case value_variant_type::Type::Type0: {
12148  return functor(
12149  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12150  arg2.m_impl.m_value0);
12151  }
12152  case value_variant_type::Type::Type1: {
12153  return functor(
12154  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12155  arg2.m_impl.m_value1);
12156  }
12157  case value_variant_type::Type::Type2: {
12158  return functor(
12159  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12160  arg2.m_impl.m_value2);
12161  }
12162  case value_variant_type::Type::Type3: {
12163  return functor(
12164  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12165  arg2.m_impl.m_value3);
12166  }
12167  case value_variant_type::Type::Type4: {
12168  return functor(
12169  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12170  arg2.m_impl.m_value4);
12171  }
12172  case value_variant_type::Type::Type5: {
12173  return functor(
12174  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12175  arg2.m_impl.m_value5);
12176  }
12177  case value_variant_type::Type::Type6: {
12178  return functor(
12179  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12180  arg2.m_impl.m_value6);
12181  }
12182  case value_variant_type::Type::Type7: {
12183  return functor(
12184  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12185  arg2.m_impl.m_value7);
12186  }
12187  case value_variant_type::Type::Type8: {
12188  return functor(
12189  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12190  arg2.m_impl.m_value8);
12191  }
12192  case value_variant_type::Type::Type9: {
12193  return functor(
12194  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value5,
12195  arg2.m_impl.m_value9);
12196  }
12197  default:
12198  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12199  }
12200  }
12201  case value_variant_type::Type::Type6: {
12202  switch(arg2.m_type)
12203  {
12204  case value_variant_type::Type::Type0: {
12205  return functor(
12206  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12207  arg2.m_impl.m_value0);
12208  }
12209  case value_variant_type::Type::Type1: {
12210  return functor(
12211  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12212  arg2.m_impl.m_value1);
12213  }
12214  case value_variant_type::Type::Type2: {
12215  return functor(
12216  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12217  arg2.m_impl.m_value2);
12218  }
12219  case value_variant_type::Type::Type3: {
12220  return functor(
12221  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12222  arg2.m_impl.m_value3);
12223  }
12224  case value_variant_type::Type::Type4: {
12225  return functor(
12226  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12227  arg2.m_impl.m_value4);
12228  }
12229  case value_variant_type::Type::Type5: {
12230  return functor(
12231  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12232  arg2.m_impl.m_value5);
12233  }
12234  case value_variant_type::Type::Type6: {
12235  return functor(
12236  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12237  arg2.m_impl.m_value6);
12238  }
12239  case value_variant_type::Type::Type7: {
12240  return functor(
12241  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12242  arg2.m_impl.m_value7);
12243  }
12244  case value_variant_type::Type::Type8: {
12245  return functor(
12246  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12247  arg2.m_impl.m_value8);
12248  }
12249  case value_variant_type::Type::Type9: {
12250  return functor(
12251  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value6,
12252  arg2.m_impl.m_value9);
12253  }
12254  default:
12255  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12256  }
12257  }
12258  case value_variant_type::Type::Type7: {
12259  switch(arg2.m_type)
12260  {
12261  case value_variant_type::Type::Type0: {
12262  return functor(
12263  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12264  arg2.m_impl.m_value0);
12265  }
12266  case value_variant_type::Type::Type1: {
12267  return functor(
12268  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12269  arg2.m_impl.m_value1);
12270  }
12271  case value_variant_type::Type::Type2: {
12272  return functor(
12273  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12274  arg2.m_impl.m_value2);
12275  }
12276  case value_variant_type::Type::Type3: {
12277  return functor(
12278  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12279  arg2.m_impl.m_value3);
12280  }
12281  case value_variant_type::Type::Type4: {
12282  return functor(
12283  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12284  arg2.m_impl.m_value4);
12285  }
12286  case value_variant_type::Type::Type5: {
12287  return functor(
12288  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12289  arg2.m_impl.m_value5);
12290  }
12291  case value_variant_type::Type::Type6: {
12292  return functor(
12293  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12294  arg2.m_impl.m_value6);
12295  }
12296  case value_variant_type::Type::Type7: {
12297  return functor(
12298  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12299  arg2.m_impl.m_value7);
12300  }
12301  case value_variant_type::Type::Type8: {
12302  return functor(
12303  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12304  arg2.m_impl.m_value8);
12305  }
12306  case value_variant_type::Type::Type9: {
12307  return functor(
12308  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value7,
12309  arg2.m_impl.m_value9);
12310  }
12311  default:
12312  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12313  }
12314  }
12315  case value_variant_type::Type::Type8: {
12316  switch(arg2.m_type)
12317  {
12318  case value_variant_type::Type::Type0: {
12319  return functor(
12320  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12321  arg2.m_impl.m_value0);
12322  }
12323  case value_variant_type::Type::Type1: {
12324  return functor(
12325  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12326  arg2.m_impl.m_value1);
12327  }
12328  case value_variant_type::Type::Type2: {
12329  return functor(
12330  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12331  arg2.m_impl.m_value2);
12332  }
12333  case value_variant_type::Type::Type3: {
12334  return functor(
12335  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12336  arg2.m_impl.m_value3);
12337  }
12338  case value_variant_type::Type::Type4: {
12339  return functor(
12340  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12341  arg2.m_impl.m_value4);
12342  }
12343  case value_variant_type::Type::Type5: {
12344  return functor(
12345  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12346  arg2.m_impl.m_value5);
12347  }
12348  case value_variant_type::Type::Type6: {
12349  return functor(
12350  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12351  arg2.m_impl.m_value6);
12352  }
12353  case value_variant_type::Type::Type7: {
12354  return functor(
12355  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12356  arg2.m_impl.m_value7);
12357  }
12358  case value_variant_type::Type::Type8: {
12359  return functor(
12360  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12361  arg2.m_impl.m_value8);
12362  }
12363  case value_variant_type::Type::Type9: {
12364  return functor(
12365  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value8,
12366  arg2.m_impl.m_value9);
12367  }
12368  default:
12369  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12370  }
12371  }
12372  case value_variant_type::Type::Type9: {
12373  switch(arg2.m_type)
12374  {
12375  case value_variant_type::Type::Type0: {
12376  return functor(
12377  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12378  arg2.m_impl.m_value0);
12379  }
12380  case value_variant_type::Type::Type1: {
12381  return functor(
12382  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12383  arg2.m_impl.m_value1);
12384  }
12385  case value_variant_type::Type::Type2: {
12386  return functor(
12387  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12388  arg2.m_impl.m_value2);
12389  }
12390  case value_variant_type::Type::Type3: {
12391  return functor(
12392  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12393  arg2.m_impl.m_value3);
12394  }
12395  case value_variant_type::Type::Type4: {
12396  return functor(
12397  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12398  arg2.m_impl.m_value4);
12399  }
12400  case value_variant_type::Type::Type5: {
12401  return functor(
12402  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12403  arg2.m_impl.m_value5);
12404  }
12405  case value_variant_type::Type::Type6: {
12406  return functor(
12407  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12408  arg2.m_impl.m_value6);
12409  }
12410  case value_variant_type::Type::Type7: {
12411  return functor(
12412  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12413  arg2.m_impl.m_value7);
12414  }
12415  case value_variant_type::Type::Type8: {
12416  return functor(
12417  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12418  arg2.m_impl.m_value8);
12419  }
12420  case value_variant_type::Type::Type9: {
12421  return functor(
12422  std::move(arg0.m_impl.m_value8), arg1.m_impl.m_value9,
12423  arg2.m_impl.m_value9);
12424  }
12425  default:
12426  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12427  }
12428  }
12429  default:
12430  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12431  }
12432  }
12433  case value_variant_type::Type::Type9: {
12434  switch(arg1.m_type)
12435  {
12436  case value_variant_type::Type::Type0: {
12437  switch(arg2.m_type)
12438  {
12439  case value_variant_type::Type::Type0: {
12440  return functor(
12441  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12442  arg2.m_impl.m_value0);
12443  }
12444  case value_variant_type::Type::Type1: {
12445  return functor(
12446  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12447  arg2.m_impl.m_value1);
12448  }
12449  case value_variant_type::Type::Type2: {
12450  return functor(
12451  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12452  arg2.m_impl.m_value2);
12453  }
12454  case value_variant_type::Type::Type3: {
12455  return functor(
12456  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12457  arg2.m_impl.m_value3);
12458  }
12459  case value_variant_type::Type::Type4: {
12460  return functor(
12461  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12462  arg2.m_impl.m_value4);
12463  }
12464  case value_variant_type::Type::Type5: {
12465  return functor(
12466  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12467  arg2.m_impl.m_value5);
12468  }
12469  case value_variant_type::Type::Type6: {
12470  return functor(
12471  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12472  arg2.m_impl.m_value6);
12473  }
12474  case value_variant_type::Type::Type7: {
12475  return functor(
12476  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12477  arg2.m_impl.m_value7);
12478  }
12479  case value_variant_type::Type::Type8: {
12480  return functor(
12481  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12482  arg2.m_impl.m_value8);
12483  }
12484  case value_variant_type::Type::Type9: {
12485  return functor(
12486  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value0,
12487  arg2.m_impl.m_value9);
12488  }
12489  default:
12490  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12491  }
12492  }
12493  case value_variant_type::Type::Type1: {
12494  switch(arg2.m_type)
12495  {
12496  case value_variant_type::Type::Type0: {
12497  return functor(
12498  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12499  arg2.m_impl.m_value0);
12500  }
12501  case value_variant_type::Type::Type1: {
12502  return functor(
12503  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12504  arg2.m_impl.m_value1);
12505  }
12506  case value_variant_type::Type::Type2: {
12507  return functor(
12508  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12509  arg2.m_impl.m_value2);
12510  }
12511  case value_variant_type::Type::Type3: {
12512  return functor(
12513  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12514  arg2.m_impl.m_value3);
12515  }
12516  case value_variant_type::Type::Type4: {
12517  return functor(
12518  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12519  arg2.m_impl.m_value4);
12520  }
12521  case value_variant_type::Type::Type5: {
12522  return functor(
12523  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12524  arg2.m_impl.m_value5);
12525  }
12526  case value_variant_type::Type::Type6: {
12527  return functor(
12528  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12529  arg2.m_impl.m_value6);
12530  }
12531  case value_variant_type::Type::Type7: {
12532  return functor(
12533  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12534  arg2.m_impl.m_value7);
12535  }
12536  case value_variant_type::Type::Type8: {
12537  return functor(
12538  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12539  arg2.m_impl.m_value8);
12540  }
12541  case value_variant_type::Type::Type9: {
12542  return functor(
12543  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value1,
12544  arg2.m_impl.m_value9);
12545  }
12546  default:
12547  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12548  }
12549  }
12550  case value_variant_type::Type::Type2: {
12551  switch(arg2.m_type)
12552  {
12553  case value_variant_type::Type::Type0: {
12554  return functor(
12555  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12556  arg2.m_impl.m_value0);
12557  }
12558  case value_variant_type::Type::Type1: {
12559  return functor(
12560  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12561  arg2.m_impl.m_value1);
12562  }
12563  case value_variant_type::Type::Type2: {
12564  return functor(
12565  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12566  arg2.m_impl.m_value2);
12567  }
12568  case value_variant_type::Type::Type3: {
12569  return functor(
12570  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12571  arg2.m_impl.m_value3);
12572  }
12573  case value_variant_type::Type::Type4: {
12574  return functor(
12575  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12576  arg2.m_impl.m_value4);
12577  }
12578  case value_variant_type::Type::Type5: {
12579  return functor(
12580  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12581  arg2.m_impl.m_value5);
12582  }
12583  case value_variant_type::Type::Type6: {
12584  return functor(
12585  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12586  arg2.m_impl.m_value6);
12587  }
12588  case value_variant_type::Type::Type7: {
12589  return functor(
12590  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12591  arg2.m_impl.m_value7);
12592  }
12593  case value_variant_type::Type::Type8: {
12594  return functor(
12595  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12596  arg2.m_impl.m_value8);
12597  }
12598  case value_variant_type::Type::Type9: {
12599  return functor(
12600  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value2,
12601  arg2.m_impl.m_value9);
12602  }
12603  default:
12604  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12605  }
12606  }
12607  case value_variant_type::Type::Type3: {
12608  switch(arg2.m_type)
12609  {
12610  case value_variant_type::Type::Type0: {
12611  return functor(
12612  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12613  arg2.m_impl.m_value0);
12614  }
12615  case value_variant_type::Type::Type1: {
12616  return functor(
12617  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12618  arg2.m_impl.m_value1);
12619  }
12620  case value_variant_type::Type::Type2: {
12621  return functor(
12622  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12623  arg2.m_impl.m_value2);
12624  }
12625  case value_variant_type::Type::Type3: {
12626  return functor(
12627  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12628  arg2.m_impl.m_value3);
12629  }
12630  case value_variant_type::Type::Type4: {
12631  return functor(
12632  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12633  arg2.m_impl.m_value4);
12634  }
12635  case value_variant_type::Type::Type5: {
12636  return functor(
12637  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12638  arg2.m_impl.m_value5);
12639  }
12640  case value_variant_type::Type::Type6: {
12641  return functor(
12642  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12643  arg2.m_impl.m_value6);
12644  }
12645  case value_variant_type::Type::Type7: {
12646  return functor(
12647  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12648  arg2.m_impl.m_value7);
12649  }
12650  case value_variant_type::Type::Type8: {
12651  return functor(
12652  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12653  arg2.m_impl.m_value8);
12654  }
12655  case value_variant_type::Type::Type9: {
12656  return functor(
12657  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value3,
12658  arg2.m_impl.m_value9);
12659  }
12660  default:
12661  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12662  }
12663  }
12664  case value_variant_type::Type::Type4: {
12665  switch(arg2.m_type)
12666  {
12667  case value_variant_type::Type::Type0: {
12668  return functor(
12669  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12670  arg2.m_impl.m_value0);
12671  }
12672  case value_variant_type::Type::Type1: {
12673  return functor(
12674  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12675  arg2.m_impl.m_value1);
12676  }
12677  case value_variant_type::Type::Type2: {
12678  return functor(
12679  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12680  arg2.m_impl.m_value2);
12681  }
12682  case value_variant_type::Type::Type3: {
12683  return functor(
12684  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12685  arg2.m_impl.m_value3);
12686  }
12687  case value_variant_type::Type::Type4: {
12688  return functor(
12689  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12690  arg2.m_impl.m_value4);
12691  }
12692  case value_variant_type::Type::Type5: {
12693  return functor(
12694  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12695  arg2.m_impl.m_value5);
12696  }
12697  case value_variant_type::Type::Type6: {
12698  return functor(
12699  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12700  arg2.m_impl.m_value6);
12701  }
12702  case value_variant_type::Type::Type7: {
12703  return functor(
12704  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12705  arg2.m_impl.m_value7);
12706  }
12707  case value_variant_type::Type::Type8: {
12708  return functor(
12709  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12710  arg2.m_impl.m_value8);
12711  }
12712  case value_variant_type::Type::Type9: {
12713  return functor(
12714  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value4,
12715  arg2.m_impl.m_value9);
12716  }
12717  default:
12718  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12719  }
12720  }
12721  case value_variant_type::Type::Type5: {
12722  switch(arg2.m_type)
12723  {
12724  case value_variant_type::Type::Type0: {
12725  return functor(
12726  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12727  arg2.m_impl.m_value0);
12728  }
12729  case value_variant_type::Type::Type1: {
12730  return functor(
12731  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12732  arg2.m_impl.m_value1);
12733  }
12734  case value_variant_type::Type::Type2: {
12735  return functor(
12736  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12737  arg2.m_impl.m_value2);
12738  }
12739  case value_variant_type::Type::Type3: {
12740  return functor(
12741  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12742  arg2.m_impl.m_value3);
12743  }
12744  case value_variant_type::Type::Type4: {
12745  return functor(
12746  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12747  arg2.m_impl.m_value4);
12748  }
12749  case value_variant_type::Type::Type5: {
12750  return functor(
12751  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12752  arg2.m_impl.m_value5);
12753  }
12754  case value_variant_type::Type::Type6: {
12755  return functor(
12756  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12757  arg2.m_impl.m_value6);
12758  }
12759  case value_variant_type::Type::Type7: {
12760  return functor(
12761  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12762  arg2.m_impl.m_value7);
12763  }
12764  case value_variant_type::Type::Type8: {
12765  return functor(
12766  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12767  arg2.m_impl.m_value8);
12768  }
12769  case value_variant_type::Type::Type9: {
12770  return functor(
12771  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value5,
12772  arg2.m_impl.m_value9);
12773  }
12774  default:
12775  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12776  }
12777  }
12778  case value_variant_type::Type::Type6: {
12779  switch(arg2.m_type)
12780  {
12781  case value_variant_type::Type::Type0: {
12782  return functor(
12783  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12784  arg2.m_impl.m_value0);
12785  }
12786  case value_variant_type::Type::Type1: {
12787  return functor(
12788  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12789  arg2.m_impl.m_value1);
12790  }
12791  case value_variant_type::Type::Type2: {
12792  return functor(
12793  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12794  arg2.m_impl.m_value2);
12795  }
12796  case value_variant_type::Type::Type3: {
12797  return functor(
12798  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12799  arg2.m_impl.m_value3);
12800  }
12801  case value_variant_type::Type::Type4: {
12802  return functor(
12803  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12804  arg2.m_impl.m_value4);
12805  }
12806  case value_variant_type::Type::Type5: {
12807  return functor(
12808  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12809  arg2.m_impl.m_value5);
12810  }
12811  case value_variant_type::Type::Type6: {
12812  return functor(
12813  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12814  arg2.m_impl.m_value6);
12815  }
12816  case value_variant_type::Type::Type7: {
12817  return functor(
12818  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12819  arg2.m_impl.m_value7);
12820  }
12821  case value_variant_type::Type::Type8: {
12822  return functor(
12823  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12824  arg2.m_impl.m_value8);
12825  }
12826  case value_variant_type::Type::Type9: {
12827  return functor(
12828  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value6,
12829  arg2.m_impl.m_value9);
12830  }
12831  default:
12832  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12833  }
12834  }
12835  case value_variant_type::Type::Type7: {
12836  switch(arg2.m_type)
12837  {
12838  case value_variant_type::Type::Type0: {
12839  return functor(
12840  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12841  arg2.m_impl.m_value0);
12842  }
12843  case value_variant_type::Type::Type1: {
12844  return functor(
12845  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12846  arg2.m_impl.m_value1);
12847  }
12848  case value_variant_type::Type::Type2: {
12849  return functor(
12850  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12851  arg2.m_impl.m_value2);
12852  }
12853  case value_variant_type::Type::Type3: {
12854  return functor(
12855  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12856  arg2.m_impl.m_value3);
12857  }
12858  case value_variant_type::Type::Type4: {
12859  return functor(
12860  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12861  arg2.m_impl.m_value4);
12862  }
12863  case value_variant_type::Type::Type5: {
12864  return functor(
12865  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12866  arg2.m_impl.m_value5);
12867  }
12868  case value_variant_type::Type::Type6: {
12869  return functor(
12870  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12871  arg2.m_impl.m_value6);
12872  }
12873  case value_variant_type::Type::Type7: {
12874  return functor(
12875  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12876  arg2.m_impl.m_value7);
12877  }
12878  case value_variant_type::Type::Type8: {
12879  return functor(
12880  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12881  arg2.m_impl.m_value8);
12882  }
12883  case value_variant_type::Type::Type9: {
12884  return functor(
12885  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value7,
12886  arg2.m_impl.m_value9);
12887  }
12888  default:
12889  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12890  }
12891  }
12892  case value_variant_type::Type::Type8: {
12893  switch(arg2.m_type)
12894  {
12895  case value_variant_type::Type::Type0: {
12896  return functor(
12897  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12898  arg2.m_impl.m_value0);
12899  }
12900  case value_variant_type::Type::Type1: {
12901  return functor(
12902  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12903  arg2.m_impl.m_value1);
12904  }
12905  case value_variant_type::Type::Type2: {
12906  return functor(
12907  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12908  arg2.m_impl.m_value2);
12909  }
12910  case value_variant_type::Type::Type3: {
12911  return functor(
12912  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12913  arg2.m_impl.m_value3);
12914  }
12915  case value_variant_type::Type::Type4: {
12916  return functor(
12917  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12918  arg2.m_impl.m_value4);
12919  }
12920  case value_variant_type::Type::Type5: {
12921  return functor(
12922  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12923  arg2.m_impl.m_value5);
12924  }
12925  case value_variant_type::Type::Type6: {
12926  return functor(
12927  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12928  arg2.m_impl.m_value6);
12929  }
12930  case value_variant_type::Type::Type7: {
12931  return functor(
12932  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12933  arg2.m_impl.m_value7);
12934  }
12935  case value_variant_type::Type::Type8: {
12936  return functor(
12937  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12938  arg2.m_impl.m_value8);
12939  }
12940  case value_variant_type::Type::Type9: {
12941  return functor(
12942  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value8,
12943  arg2.m_impl.m_value9);
12944  }
12945  default:
12946  ossia_do_throw(std::runtime_error, "value_variant: bad type");
12947  }
12948  }
12949  case value_variant_type::Type::Type9: {
12950  switch(arg2.m_type)
12951  {
12952  case value_variant_type::Type::Type0: {
12953  return functor(
12954  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12955  arg2.m_impl.m_value0);
12956  }
12957  case value_variant_type::Type::Type1: {
12958  return functor(
12959  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12960  arg2.m_impl.m_value1);
12961  }
12962  case value_variant_type::Type::Type2: {
12963  return functor(
12964  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12965  arg2.m_impl.m_value2);
12966  }
12967  case value_variant_type::Type::Type3: {
12968  return functor(
12969  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12970  arg2.m_impl.m_value3);
12971  }
12972  case value_variant_type::Type::Type4: {
12973  return functor(
12974  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12975  arg2.m_impl.m_value4);
12976  }
12977  case value_variant_type::Type::Type5: {
12978  return functor(
12979  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12980  arg2.m_impl.m_value5);
12981  }
12982  case value_variant_type::Type::Type6: {
12983  return functor(
12984  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12985  arg2.m_impl.m_value6);
12986  }
12987  case value_variant_type::Type::Type7: {
12988  return functor(
12989  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12990  arg2.m_impl.m_value7);
12991  }
12992  case value_variant_type::Type::Type8: {
12993  return functor(
12994  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
12995  arg2.m_impl.m_value8);
12996  }
12997  case value_variant_type::Type::Type9: {
12998  return functor(
12999  std::move(arg0.m_impl.m_value9), arg1.m_impl.m_value9,
13000  arg2.m_impl.m_value9);
13001  }
13002  default:
13003  ossia_do_throw(std::runtime_error, "value_variant: bad type");
13004  }
13005  }
13006  default:
13007  ossia_do_throw(std::runtime_error, "value_variant: bad type");
13008  }
13009  }
13010  default:
13011  ossia_do_throw(std::runtime_error, "value_variant: bad type");
13012  }
13013 }
13014 
13015 inline void value_variant_type::destruct_impl()
13016 {
13017  switch(m_type)
13018  {
13019  case Type::Type7:
13020  m_impl.m_value7.~basic_string();
13021  break;
13022  case Type::Type8:
13023  m_impl.m_value8.~vector<ossia::value>();
13024  break;
13025  case Type::Type9:
13026  m_impl.m_value9.~value_map_type();
13027  break;
13028  default:
13029  break;
13030  }
13031 }
13032 
13033 inline int value_variant_type::which() const
13034 {
13035  return m_type;
13036 }
13037 
13038 inline value_variant_type::operator bool() const
13039 {
13040  return m_type != npos;
13041 }
13042 
13043 inline value_variant_type::value_variant_type()
13044  : m_type{Npos}
13045 {
13046 }
13047 
13048 inline value_variant_type::~value_variant_type()
13049 {
13050  destruct_impl();
13051 }
13052 
13053 inline value_variant_type::value_variant_type(float v)
13054  : m_type{Type0}
13055 {
13056  new(&m_impl.m_value0) float{v};
13057 }
13058 
13059 inline value_variant_type::value_variant_type(int32_t v)
13060  : m_type{Type1}
13061 {
13062  new(&m_impl.m_value1) int32_t{v};
13063 }
13064 
13065 inline value_variant_type::value_variant_type(ossia::vec2f v)
13066  : m_type{Type2}
13067 {
13068  new(&m_impl.m_value2) ossia::vec2f{v};
13069 }
13070 
13071 inline value_variant_type::value_variant_type(ossia::vec3f v)
13072  : m_type{Type3}
13073 {
13074  new(&m_impl.m_value3) ossia::vec3f{v};
13075 }
13076 
13077 inline value_variant_type::value_variant_type(ossia::vec4f v)
13078  : m_type{Type4}
13079 {
13080  new(&m_impl.m_value4) ossia::vec4f{v};
13081 }
13082 
13083 inline value_variant_type::value_variant_type(ossia::impulse v)
13084  : m_type{Type5}
13085 {
13086  new(&m_impl.m_value5) ossia::impulse{v};
13087 }
13088 
13089 inline value_variant_type::value_variant_type(bool v)
13090  : m_type{Type6}
13091 {
13092  new(&m_impl.m_value6) bool{v};
13093 }
13094 
13095 inline value_variant_type::value_variant_type(const std::string& v)
13096  : m_type{Type7}
13097 {
13098  new(&m_impl.m_value7) std::string{v};
13099 }
13100 
13101 inline value_variant_type::value_variant_type(std::string&& v)
13102  : m_type{Type7}
13103 {
13104  new(&m_impl.m_value7) std::string{std::move(v)};
13105 }
13106 
13107 inline value_variant_type::value_variant_type(const std::vector<ossia::value>& v)
13108  : m_type{Type8}
13109 {
13110  new(&m_impl.m_value8) std::vector<ossia::value>(v);
13111 }
13112 
13113 inline value_variant_type::value_variant_type(std::vector<ossia::value>&& v) noexcept
13114  : m_type{Type8}
13115 {
13116  new(&m_impl.m_value8) std::vector<ossia::value>(std::move(v));
13117 }
13118 
13119 inline value_variant_type::value_variant_type(const value_map_type& v)
13120  : m_type{Type9}
13121 {
13122  new(&m_impl.m_value9) value_map_type(v);
13123 }
13124 
13125 inline value_variant_type::value_variant_type(value_map_type&& v)
13126  : m_type{Type9}
13127 {
13128  new(&m_impl.m_value9) value_map_type(std::move(v));
13129 }
13130 
13131 inline value_variant_type::value_variant_type(const value_variant_type& other)
13132  : m_type{other.m_type}
13133 {
13134  switch(m_type)
13135  {
13136  case Type::Type0:
13137  new(&m_impl.m_value0) float{other.m_impl.m_value0};
13138  break;
13139  case Type::Type1:
13140  new(&m_impl.m_value1) int32_t{other.m_impl.m_value1};
13141  break;
13142  case Type::Type2:
13143  new(&m_impl.m_value2) ossia::vec2f{other.m_impl.m_value2};
13144  break;
13145  case Type::Type3:
13146  new(&m_impl.m_value3) ossia::vec3f{other.m_impl.m_value3};
13147  break;
13148  case Type::Type4:
13149  new(&m_impl.m_value4) ossia::vec4f{other.m_impl.m_value4};
13150  break;
13151  case Type::Type5:
13152  new(&m_impl.m_value5) ossia::impulse{other.m_impl.m_value5};
13153  break;
13154  case Type::Type6:
13155  new(&m_impl.m_value6) bool{other.m_impl.m_value6};
13156  break;
13157  case Type::Type7:
13158  new(&m_impl.m_value7) std::string{other.m_impl.m_value7};
13159  break;
13160  case Type::Type8:
13161  new(&m_impl.m_value8) std::vector<ossia::value>(other.m_impl.m_value8);
13162  break;
13163  case Type::Type9:
13164  new(&m_impl.m_value9) value_map_type(other.m_impl.m_value9);
13165  break;
13166  default:
13167  break;
13168  }
13169 }
13170 
13171 inline value_variant_type::value_variant_type(value_variant_type&& other) noexcept
13172  : m_type{other.m_type}
13173 {
13174  switch(m_type)
13175  {
13176  case Type::Type0:
13177  new(&m_impl.m_value0) float{std::move(other.m_impl.m_value0)};
13178  break;
13179  case Type::Type1:
13180  new(&m_impl.m_value1) int32_t{std::move(other.m_impl.m_value1)};
13181  break;
13182  case Type::Type2:
13183  new(&m_impl.m_value2) ossia::vec2f{std::move(other.m_impl.m_value2)};
13184  break;
13185  case Type::Type3:
13186  new(&m_impl.m_value3) ossia::vec3f{std::move(other.m_impl.m_value3)};
13187  break;
13188  case Type::Type4:
13189  new(&m_impl.m_value4) ossia::vec4f{std::move(other.m_impl.m_value4)};
13190  break;
13191  case Type::Type5:
13192  new(&m_impl.m_value5) ossia::impulse{std::move(other.m_impl.m_value5)};
13193  break;
13194  case Type::Type6:
13195  new(&m_impl.m_value6) bool{std::move(other.m_impl.m_value6)};
13196  break;
13197  case Type::Type7:
13198  new(&m_impl.m_value7) std::string{std::move(other.m_impl.m_value7)};
13199  break;
13200  case Type::Type8:
13201  new(&m_impl.m_value8) std::vector<ossia::value>(std::move(other.m_impl.m_value8));
13202  break;
13203  case Type::Type9:
13204  new(&m_impl.m_value9) value_map_type{std::move(other.m_impl.m_value9)};
13205  break;
13206  default:
13207  break;
13208  }
13209 }
13210 
13211 inline value_variant_type& value_variant_type::operator=(const value_variant_type& other)
13212 {
13213  if(m_type != other.m_type)
13214  {
13215  destruct_impl();
13216  m_type = other.m_type;
13217  switch(m_type)
13218  {
13219  case Type::Type0:
13220  new(&m_impl.m_value0) float{other.m_impl.m_value0};
13221  break;
13222  case Type::Type1:
13223  new(&m_impl.m_value1) int32_t{other.m_impl.m_value1};
13224  break;
13225  case Type::Type2:
13226  new(&m_impl.m_value2) ossia::vec2f{other.m_impl.m_value2};
13227  break;
13228  case Type::Type3:
13229  new(&m_impl.m_value3) ossia::vec3f{other.m_impl.m_value3};
13230  break;
13231  case Type::Type4:
13232  new(&m_impl.m_value4) ossia::vec4f{other.m_impl.m_value4};
13233  break;
13234  case Type::Type5:
13235  new(&m_impl.m_value5) ossia::impulse{other.m_impl.m_value5};
13236  break;
13237  case Type::Type6:
13238  new(&m_impl.m_value6) bool{other.m_impl.m_value6};
13239  break;
13240  case Type::Type7:
13241  new(&m_impl.m_value7) std::string{other.m_impl.m_value7};
13242  break;
13243  case Type::Type8:
13244  new(&m_impl.m_value8) std::vector<ossia::value>(other.m_impl.m_value8);
13245  break;
13246  case Type::Type9:
13247  new(&m_impl.m_value9) value_map_type{other.m_impl.m_value9};
13248  break;
13249  default:
13250  break;
13251  }
13252  }
13253  else
13254  {
13255  switch(m_type)
13256  {
13257  case Type::Type0:
13258  m_impl.m_value0 = other.m_impl.m_value0;
13259  break;
13260  case Type::Type1:
13261  m_impl.m_value1 = other.m_impl.m_value1;
13262  break;
13263  case Type::Type2:
13264  m_impl.m_value2 = other.m_impl.m_value2;
13265  break;
13266  case Type::Type3:
13267  m_impl.m_value3 = other.m_impl.m_value3;
13268  break;
13269  case Type::Type4:
13270  m_impl.m_value4 = other.m_impl.m_value4;
13271  break;
13272  case Type::Type5:
13273  m_impl.m_value5 = other.m_impl.m_value5;
13274  break;
13275  case Type::Type6:
13276  m_impl.m_value6 = other.m_impl.m_value6;
13277  break;
13278  case Type::Type7:
13279  m_impl.m_value7 = other.m_impl.m_value7;
13280  break;
13281  case Type::Type8:
13282  m_impl.m_value8 = other.m_impl.m_value8;
13283  break;
13284  case Type::Type9:
13285  m_impl.m_value9 = other.m_impl.m_value9;
13286  break;
13287  default:
13288  break;
13289  }
13290  }
13291  return *this;
13292 }
13293 
13294 inline value_variant_type&
13295 value_variant_type::operator=(value_variant_type&& other) noexcept
13296 {
13297  if(m_type != other.m_type)
13298  {
13299  destruct_impl();
13300  m_type = other.m_type;
13301  switch(m_type)
13302  {
13303  case Type::Type0:
13304  new(&m_impl.m_value0) float{std::move(other.m_impl.m_value0)};
13305  break;
13306  case Type::Type1:
13307  new(&m_impl.m_value1) int32_t{std::move(other.m_impl.m_value1)};
13308  break;
13309  case Type::Type2:
13310  new(&m_impl.m_value2) ossia::vec2f{std::move(other.m_impl.m_value2)};
13311  break;
13312  case Type::Type3:
13313  new(&m_impl.m_value3) ossia::vec3f{std::move(other.m_impl.m_value3)};
13314  break;
13315  case Type::Type4:
13316  new(&m_impl.m_value4) ossia::vec4f{std::move(other.m_impl.m_value4)};
13317  break;
13318  case Type::Type5:
13319  new(&m_impl.m_value5) ossia::impulse{std::move(other.m_impl.m_value5)};
13320  break;
13321  case Type::Type6:
13322  new(&m_impl.m_value6) bool{std::move(other.m_impl.m_value6)};
13323  break;
13324  case Type::Type7:
13325  new(&m_impl.m_value7) std::string{std::move(other.m_impl.m_value7)};
13326  break;
13327  case Type::Type8:
13328  new(&m_impl.m_value8)
13329  std::vector<ossia::value>(std::move(other.m_impl.m_value8));
13330  break;
13331  case Type::Type9:
13332  new(&m_impl.m_value9) value_map_type{std::move(other.m_impl.m_value9)};
13333  break;
13334  default:
13335  break;
13336  }
13337  }
13338  else
13339  {
13340  switch(m_type)
13341  {
13342  case Type::Type0:
13343  m_impl.m_value0 = other.m_impl.m_value0;
13344  break;
13345  case Type::Type1:
13346  m_impl.m_value1 = other.m_impl.m_value1;
13347  break;
13348  case Type::Type2:
13349  m_impl.m_value2 = other.m_impl.m_value2;
13350  break;
13351  case Type::Type3:
13352  m_impl.m_value3 = other.m_impl.m_value3;
13353  break;
13354  case Type::Type4:
13355  m_impl.m_value4 = other.m_impl.m_value4;
13356  break;
13357  case Type::Type5:
13358  m_impl.m_value5 = other.m_impl.m_value5;
13359  break;
13360  case Type::Type6:
13361  m_impl.m_value6 = other.m_impl.m_value6;
13362  break;
13363  case Type::Type7:
13364  m_impl.m_value7 = std::move(other.m_impl.m_value7);
13365  break;
13366  case Type::Type8:
13367  m_impl.m_value8 = std::move(other.m_impl.m_value8);
13368  break;
13369  case Type::Type9:
13370  m_impl.m_value9 = other.m_impl.m_value9;
13371  break;
13372  default:
13373  break;
13374  }
13375  }
13376  return *this;
13377 }
The value class.
Definition: value.hpp:173